NPE Ternärer Operator

G

GladstoneGander

Gast
Kann mir jemand sagen, warum beim Ternären Operator hier eine NPE fliegt? Hat das was mit Autoboxing zu tun?

Java:
public class Main {

    public static void main(final String[] args) {
        final SimpleClass sc = new SimpleClass();
        final Double d = sc == null ? 0 : sc.getTheDouble();
    }
}
Java:
public class SimpleClass {

    public Double getTheDouble() {
        return null;
    }
}

Meine JRE ist die 1.6u22
Betriebssystem Windows 7 32bit
Entwicklungsumgebung Netbeans 6.8
Fehler tritt sowohl bei Ant- als auch bei Maven-Projekten auf.
 
B

bygones

Gast
abgesehen davon dass der code an sich merkwürdig ist... wie soll nach einer instanziierung die Variable null sein ?
 
S

SlaterB

Gast
was bringt diese Exception die gleich wieder abgefangen wird? gehts danach nicht normal weiter?
gibts ein vollständiges Codebeispiel so dass sc null ist ohne dass die Codezeile danach mitübersprungen wird (Exception)?
 
B

bygones

Gast
was bringt diese Exception die gleich wieder abgefangen wird? gehts danach nicht normal weiter?
gibts ein vollständiges Codebeispiel so dass sc null ist ohne dass die Codezeile danach mitübersprungen wird (Exception)?

stimmt.... ein eRaaaa's Beispiel ist und bleibt danach ein valides Objekt was != null ist
 

eRaaaa

Top Contributor
Mhm stimmt, das war natürlich mega doof. Ja dann hab ich auch ka :)
Aber ist ja auch egal, ich glaube auch nicht dass es ihm darum ging! :pueh:
 
G

GladstoneGander

Gast
Danke für den Tipp. Der kleine Double-Wert (der im Beispiel nur versehentlich als '0' und nicht '0d' angegeben wurde) muss tatsächlich in ein '(Double)' gecastet werden.

abgesehen davon dass der code an sich merkwürdig ist... wie soll nach einer instanziierung die Variable null sein ?
Das ist nur Beispielcode, wo das aufgetretene Problem auf das Wesentliche reduziert wurde.

gibts ein vollständiges Codebeispiel so dass sc null ist ohne dass die Codezeile danach mitübersprungen wird (Exception)?
Das ist der Fall, wenn sc an der Stelle nicht instanziiert, sondern über einen Methodenaufruf zurückgegeben wird. Und wenn sc dann NULL ist, fliegt die Exception nicht. So "umfangreich" wollte ich den Quelltext aber nicht gestalten.
 

Ähnliche Java Themen

Neue Themen


Oben