anquijix
13-02-2008, 14:57
Guten Tag
Ich habe eine Klasse, und in dieser Klasse habe ich einen zweidimensionalen String deklariert und initialisiert.
String array = newString[300][3].
Dieser Array soll über die ganze Klasse hinweg sichtbar sein. Somit ist diese Initialisierung auch ganz oben in der Klasse ausserhalb jeglicher Methoden platziert.
Nun habe ich eine Methode in dieser Klasse erstellt, in welcher dieser Array mit Werten gefüllt werden soll.
Bei jedem Zugriff auf diese Methode erhalte ich eine NullPointer-Exception in der Zeile, wo ich den ersten Wert in den Array schreiben möchte.
Der Array selbst ist sichtbar in der Methode, weil sonst könnte ich gar nicht kompilieren. Jedoch scheint die Variable in der Methode selbst gar "nicht initialisiert" zu sein.
Wenn ich nun die Initialisierung in der Methode selbst vornehme, habe ich keinen NullPointer mehr, aber auch nicht mehr das, was ich eigentlich wollte. Diese Variable soll nicht jedes Mal neu initialisiert werden, da ich während der Laufzeit mehrere Werte zu unabhängigen Zeitpunkten reinschreiben möchte. Der Array ist als eine Art Zusammenfassung aller getanen Schritte zu betrachten.
Hier noch in Code-Form, um es zu verdeutlichen:
public class Klasse2 extends Klasse1 {
String[][] array = new String[300][3]
int index=0;
private void meineMethode(int zahl, String string1, String string2)
{
array[index][0] = String.valueOf(zahl);
array[index][1] = string1;
array[index][2] = string2;
index++;
}
private void andereMethode(){
int zahl = 234;
String string1 = "asdfs";
String string2 = "asdfal";
meineMethode(zahl,string1,string2);
}
}
In Prosa ausgedrückt: Ich habe diverse weitere Methoden, von denen aus ich auf meineMethode zugreife. Nach jedem Zugriff auf meineMethode wird der y-index des Arrays um 1 erhöht. Somit habe ich den gesamten Verlauf im Array gespeichert, zumindest theoretisch.
Der NullPointer passiert in der Zeile:
array[index][0] = String.valueOf(zahl);
Warum? Habe ich die Variable falsch definiert oder gar die Methode?
Hoffe, meine Problematik einigermassen verständlich beschrieben zu haben und bedanke mich im Voraus für allfällige Hinweise.
Ich habe eine Klasse, und in dieser Klasse habe ich einen zweidimensionalen String deklariert und initialisiert.
String array = newString[300][3].
Dieser Array soll über die ganze Klasse hinweg sichtbar sein. Somit ist diese Initialisierung auch ganz oben in der Klasse ausserhalb jeglicher Methoden platziert.
Nun habe ich eine Methode in dieser Klasse erstellt, in welcher dieser Array mit Werten gefüllt werden soll.
Bei jedem Zugriff auf diese Methode erhalte ich eine NullPointer-Exception in der Zeile, wo ich den ersten Wert in den Array schreiben möchte.
Der Array selbst ist sichtbar in der Methode, weil sonst könnte ich gar nicht kompilieren. Jedoch scheint die Variable in der Methode selbst gar "nicht initialisiert" zu sein.
Wenn ich nun die Initialisierung in der Methode selbst vornehme, habe ich keinen NullPointer mehr, aber auch nicht mehr das, was ich eigentlich wollte. Diese Variable soll nicht jedes Mal neu initialisiert werden, da ich während der Laufzeit mehrere Werte zu unabhängigen Zeitpunkten reinschreiben möchte. Der Array ist als eine Art Zusammenfassung aller getanen Schritte zu betrachten.
Hier noch in Code-Form, um es zu verdeutlichen:
public class Klasse2 extends Klasse1 {
String[][] array = new String[300][3]
int index=0;
private void meineMethode(int zahl, String string1, String string2)
{
array[index][0] = String.valueOf(zahl);
array[index][1] = string1;
array[index][2] = string2;
index++;
}
private void andereMethode(){
int zahl = 234;
String string1 = "asdfs";
String string2 = "asdfal";
meineMethode(zahl,string1,string2);
}
}
In Prosa ausgedrückt: Ich habe diverse weitere Methoden, von denen aus ich auf meineMethode zugreife. Nach jedem Zugriff auf meineMethode wird der y-index des Arrays um 1 erhöht. Somit habe ich den gesamten Verlauf im Array gespeichert, zumindest theoretisch.
Der NullPointer passiert in der Zeile:
array[index][0] = String.valueOf(zahl);
Warum? Habe ich die Variable falsch definiert oder gar die Methode?
Hoffe, meine Problematik einigermassen verständlich beschrieben zu haben und bedanke mich im Voraus für allfällige Hinweise.