Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java]Varie Exception

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ilGuglia Visualizza il messaggio
    Lavorando su di un programmino in java mi restituisce java.lang.NullPointerException quando assegno ad una variabile il valore di un Object (formattato in stringa tramite decimalFormat).
    Non è molto chiaro .... senza vedere bene il codice. NullPointerException non salta fuori ad un assegnamento ma quando si tenta di accedere ad un campo/metodo su un reference che vale null.

    Puoi mostrare qualche pezzetto di codice?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non è molto chiaro .... senza vedere bene il codice. NullPointerException non salta fuori ad un assegnamento ma quando si tenta di accedere ad un campo/metodo su un reference che vale null.

    Puoi mostrare qualche pezzetto di codice?

    codice:
    for (i = 0; i < flag; i++) {
                raw[i][0] = rawData[i][0];
                raw[i][1] = rawData[i][1];
                raw[i][2] = this.decimalFormat.format((((BigInteger) rawData[i][2]).doubleValue()/1000.));
                raw[i][3] = this.decimalFormat.format(((((BigInteger) rawData[i][2]).doubleValue()/1000.))-(Math.round(((Double) rawData[i][4]) / 1000.)));
                raw[i][4] = this.decimalFormat.format((Double) rawData[i][4]);
                raw[i][5] = this.decimalFormat.format((Double) rawData[i][5]);
                raw[i][6] = this.decimalFormat.format((Double) rawData[i][6]);
            }
    La riga in grassetto è quella che da errore. Il flag è maggiore di 0 se vengono passati dei valori a rawData, ciò implica che non possa essere null, ma anche se così fosse, se rawData fosse null dovrebbe dare errore una cinquantina di righe sopra quando faccio questo

    codice:
     rawData[j][2] = ((BigInteger) rawData[j][2]).add((BigInteger) record[2]);
      rawData[j][4] = (Double) rawData[j][4] + (Math.round(((Double) record[3]) / 1000.));
    record[] è una variabile Object che contiene il risultato di una query
    Ultima modifica di ilGuglia; 29-01-2016 a 19:36

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ilGuglia Visualizza il messaggio
    raw[i][2] = this.decimalFormat.format((((BigInteger) rawData[i][2]).doubleValue()/1000.));
    In questa riga, le uniche cose che tecnicamente possono causare un NPE sono:
    - che raw sia null (ma se così fosse salterebbe fuori già due righe sopra alla assegnazione a raw[i][0])
    - che il campo decimalFormat sia null
    - che rawData sia null
    - che il valore a rawData[i][2] sia null (perché poi ci invochi .doubleValue() )

    Dato che la espressione dà un double il format invocato è format(double), quindi non ci sono problemi su questo.

    Posso solo fare ipotesi ... devi verificare tu. I tool di debug e l'attività di debugging servono proprio a questo.
    Ultima modifica di andbin; 29-01-2016 a 23:59
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.