RISOLTO [JAVA] null pointer exception

Stato
Discussione chiusa ad ulteriori risposte.

demda

Utente Attivo
352
49
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 Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Hai dichiarato la variabile OraArrivo ma non l'hai inizializzata.
Post unito automaticamente:

E le eccezioni che catturi nel catch non buttarle via cosi, stampane le informazioni.
 
Ultima modifica:
  • Mi piace
Reazioni: Andretti60
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!