RISOLTO [JAVA] null pointer exception

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

demda

Utente Attivo
Messaggi
352
Reazioni
49
Punteggio
40
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
 
Hai dichiarato la variabile OraArrivo ma non l'hai inizializzata.
--- i due messaggi sono stati uniti ---
E le eccezioni che catturi nel catch non buttarle via cosi, stampane le informazioni.
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top