Zum Inhalt springen

NullPointerException bei Wertzuweisung


Empfohlene Beiträge

Geschrieben

Hi,

bei folgendem code:

        System.out.println("test: "+( ( jARdbCollectorSet ) collector.get( i ) ).getInsertdate() );

        rowData[i][0] = ( ( jARdbCollectorSet ) collector.get( i ) ).getInsertdate();

gibt mir die erste zeile einen wert in der console aus. die 2te bring ne nullpointerexception.

rowData ist folgendermassen definiert:

public static Object[][] rowData = null;

woran kann das liegen ??

Geschrieben

hat sich erledigt.

dank Jaraz weiss ich nun auch, dass man Array's initialisieren muss ... auch wenn der kompiler 'NullPointerException' und nicht 'ArrayNichtInitialisiert' sagt ... :(:rolleyes::D

Geschrieben
Original geschrieben von -leliel-

hat sich erledigt.

dank Jaraz weiss ich nun auch, dass man Array's initialisieren muss ... auch wenn der kompiler 'NullPointerException' und nicht 'ArrayNichtInitialisiert' sagt ... :(:rolleyes::D

Bitte schieb es nicht auf den Compiler.

Frank

Geschrieben
auch wenn der kompiler 'NullPointerException' und nicht 'ArrayNichtInitialisiert' sagt ... :(:rolleyes::D]

Und genau das ist doch auch richtig - NullPointerException heisst ja gerade "Ich wollte auf irgendetwas zugreifen wo aber noch kein reales Objekt hintersteckt". Und genau so ist es ja auch mit deinem Array - bevor du es initialisierst, also ihm konkrete Werte zuweist steckt ja noch nichts dahinter. NullPointer ist also vollkommen Okay.

Christian

Geschrieben
Original geschrieben von -leliel-

... dass man Array's initialisieren muss ... auch wenn der kompiler 'NullPointerException' und nicht 'ArrayNichtInitialisiert' sagt ... :(:rolleyes::D

Du hattest die Array-Variable mit "null" initialisiert. Das heisst, das Array existiert nicht. Also versuchst Du, auf ein Element zuzugreifen, das es gar nicht gibt, was eine Exception zur Folge hat.

Weiter: Exceptions werden nicht vom Compiler erzeugt, sondern von der Laufzeitumgebung.

Noch weiter: Eine Meldung "ArrayNichtInitialisiert" waere irrefuehrend. Unter Initialisierung versteht man das Setzen von Werten zu Beginn. Dies setzt voraus, die Datenstruktur, in dem diese Werte gesetzt werden, existiert, was ja nicht der Fall ist. Uebrigens werden Arrays in Java automatisch initialisiert; all ihre Elemente haben zu Beginn den Wert 0.

Geschrieben

Hi,

3 mal die Smilys mitzitiert und trotzdem alles auf die Goldwaage legen. ;)

Ich glaube vom Sinn her, war ihm schon klar warum es nicht geklappt hat. Ich habe mich bei manchen aufeinanderfolgenden Aufrufen auch schon mal gefragt, warum die Laufzeitumgebung mir nicht wenigstens sagt von welchem Typ das nicht existierende Object ist.

Gruß Jaraz

Geschrieben

>3 mal die Smilys mitzitiert und trotzdem alles auf die Goldwaage legen. ;)

Eines meiner Lieblingszitate zum Thema Programmieren darauf: "Der Unterschied zwischen richtig und fast richtig ist der gleiche wie zwischen einem Blitz und einem Gluehwuermchen."

>Ich glaube vom Sinn her, war ihm schon klar warum es nicht geklappt hat.

Das ist aber public hier, keine Privataudienz, und Du glaubst es ja auch nur. ;)

>Ich habe mich bei manchen aufeinanderfolgenden Aufrufen auch schon mal gefragt, warum die Laufzeitumgebung mir nicht wenigstens sagt von welchem Typ das nicht existierende Object ist.

Vielleicht weil es den Anwender nichts angehen soll, welche Klassen der Programmierer vergewaltigt. Oder weil das etwas aufwendig waere. Oder weil der Hinweis an sich im Vergleich zu C++ schon ziemlich komfortabel ist. Oder weil die Java-Vordenker meinten, gewissenhaften Programmierern wuerde der Hinweis zum Aufstoebern eines Bugs mehr als ausreichen. Oder... :D

Geschrieben
Original geschrieben von gajUli

Eines meiner Lieblingszitate zum Thema Programmieren darauf: "Der Unterschied zwischen richtig und fast richtig ist der gleiche wie zwischen einem Blitz und einem Gluehwuermchen."

Mmhh, ganz schön spät für solche Weisheitem, werde ich mir aber merken. ;)

Original geschrieben von gajUli

Vielleicht weil es den Anwender nichts angehen soll, welche Klassen der Programmierer vergewaltigt. Oder weil das etwas aufwendig waere. Oder weil der Hinweis an sich im Vergleich zu C++ schon ziemlich komfortabel ist. Oder weil die Java-Vordenker meinten, gewissenhaften Programmierern wuerde der Hinweis zum Aufstoebern eines Bugs mehr als ausreichen. Oder... :D

... weil sonst nicht so schöne Threads entstehen würden.

Gruß und gute Nacht

Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...