RISOLTO [JAVA] null pointer exception

Stato
Discussione chiusa ad ulteriori risposte.

demda

Utente Attivo
Ciao a tutti,
sto realizzando un programma in Java che deve lavorare con una data e un ora. Quindi legge in input data e ora sotto forma di stringa e utilizza la classe SimpleDataFormat per convertire la stringa in un oggetto formattato di classe GregorianCalendar
Il tutto controllando con try - catch in caso la data sia inserita in modo errato.

Il problema che la riga che si occupa di effettuare la conversione da stringa a oggetto della GregorianCalendar, ovvero questa riga
this.OraArrivo.setTime(sdf.parse(s)) mi genera un errore di tipo: Null pointer exception

Non so veramente come risolvere


Sorgente classe:

Java:
package esercizioclassepostoauto;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Auto {

    int PostoAuto;
    String targa;
    GregorianCalendar OraArrivo;
    GregorianCalendar OraUscita;
    float importo;

    public Auto() {
    }

    public void RegistraIngresso(String s) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");
      
        sdf.setLenient(false);

        boolean contr = false;
        do {
            try {
                this.OraArrivo.setTime(sdf.parse(s));      //ERRORE (riga 27)
                System.out.println("Data: " + sdf.format(this.OraArrivo.getTimeInMillis()));
                contr = false;
            } catch (ParseException ex) {
                System.out.println("ERRORE !! DATA IN FORMATO ERRATO !");
                contr = true;
            }
        } while (contr);

    }

    public void RegistraUscita() {

    }

    public void CalcolaImporto() {

    }
}
Main:
Java:
package esercizioclassepostoauto;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class EsercizioClassePostoAuto {

    public static void main(String[] args) {
        Auto macchina = new Auto();
        macchina.RegistraIngresso("18/02/2019 - 10:09:01");     //ERRORE (riga 10)

    }

}
Questo è l'errore che ottengo:
Schermata del 2020-02-13 18-06-38.png
 

rodhellas

Utente Attivo
1,483
401
Hardware Utente
CPU
Intel i5 3470
Scheda Madre
AsRock H77 pro4/mvp
Hard Disk
120GB SSD + 1TB HD
RAM
12GB Corsair XMS3 1333mhz
Scheda Video
Gigabyte GTX 960 OC
Scheda Audio
Integrata
Monitor
SyncMaster 223BW
Alimentatore
Antec HCG-520M
Case
Thermaltake Commander Ms-i Snow Edition
Sistema Operativo
Windows 10 64bit
Hai dichiarato la variabile OraArrivo ma non l'hai inizializzata.
Post automaticamente unito:

E le eccezioni che catturi nel catch non buttarle via cosi, stampane le informazioni.
 
Ultima modifica:
  • Mi piace
Reactions: Andretti60
Stato
Discussione chiusa ad ulteriori risposte.
Iniziato da Discussione simile Forum Risposte Data
_Marco_123 Programmazione 9
F Applicazioni 5
prd.m0nzzs Applicazioni 5
liven25 Programmazione 6
P Programmazione 3

Entra

oppure Accedi utilizzando