Dynamisches Array in einer Klasse

kodela

kodela

Bekanntes Mitglied
Hallo,

ich habe mit folgendem Code ein Problem:
Java:
package test;

public class TEST
{
    static STR8T str = new STR8T(4);
  
    private static void setTest(int len, int i, int z, int s) {
        str.len = len;
        str.pos[i].z = z;
        str.pos[i].s = s;
    }  
    static private class ZPOS {
        int z;
        int s;
        public ZPOS() {
            z = -1;
            s = -1;
        }
    }
    static private class STR8T {
        ZPOS[] pos;
        int len;
        boolean geloest;
        public STR8T(int zellen) {
            for (int i = 0; i < zellen; i++) {
                pos[i] = new ZPOS();     // NullPointerException für diese Zeile
            }
            len = 0;
            geloest = false;
        }
    }      
    public static void main(String[] args) {     
        setTest(3, 2, 8, 5);
    }
}
Mit diesem Codeschnipsel will ich die Klasse STR8T testen. Sie soll für ein Str8ts-Rätsel alle entscheidenden Informationen für eine Straße liefern. Dazu zählen mit dem ZPOS-Array auch die Positionen der einzelnen Zellen.

Zur Zeit verwende ich dazu in der Klasse STR8T nur zwei ZPOS-Objekte für die jeweils erste und letzte Zelle einer Straße. Das funktioniert sehr gut, hat aber den Nachteil, dass die Positionen der dazwischen liegenden Zellen jeweils neu berechnet werden müssen. Dies möchte ich gerne über ein dynamisches Array für die Positionen vermeiden. Leider bekomme ich aber hier im Konstruktor eine NullPointerException.

Kann mir bitte jemand sagen, was ich an meinem Code ändern muss, damit es nicht zu dieser NullPointerException kommt?

MfG, kodela
 
kodela

kodela

Bekanntes Mitglied
Danke für die schnelle Antwort. Morgen werde ich mich sofort an die Auswertung machen.
 
T

tommysenf

Top Contributor
Der Grund für die NPE ist, dass du das pos Array zwar deklariert, allerdings niemals initialisiert hast.

Java:
static private class STR8T {

        ZPOS[] pos;
        int len = 0;
        boolean geloest = false;

        public STR8T(int zellen) {
           
            pos = new ZPOS[zellen];  // Initialisierung!!!
            for (int i = 0; i < zellen; i++) {
                pos[i] = new ZPOS();    
            }
        }
    }
 
kodela

kodela

Bekanntes Mitglied
Der Grund für die NPE ist, dass du das pos Array zwar deklariert, allerdings niemals initialisiert hast.
Wird das pos Array nicht für jedes neue STR8T Objekt in dessen Konstruktor initialisiert? Da mache ich wohl einen Denkfehler. Wie müsste ich es denn richtig machen?

Übrigens ist mein Titel zu diesem Thema Quatsch. Das ZPOS Array soll nur für jedes STR8T Objekt mit einer individuellen Größe initialisiert und dann nicht mehr in seiner Größe verändert werden. Da ist also nichts dynamisch.
 
kodela

kodela

Bekanntes Mitglied
Mit folgendem Code kann ich nun für für jedes Str8t-Objekt ein Array mit der Länge der Str8t für die Positionsangaben der einzelnen Zellen generieren:
Java:
class Test
{
    public void testen() {
        Str8t str = new Str8t(4);   
        str.setPos(0,3,6);
        str.setPos(1,3,7);
        str.setPos(2,3,8);
        str.setPos(3,3,9);               
    }
   
    public class Str8t {
        int len;
        int index;
        boolean isZeile;
        boolean geloest;
        Position[] pos;

        public class Position {
            int z;
            int s;
            public Position() {
                z = -1;
                s = -1;
            }
        }

        public Str8t(int laenge) {
            len = laenge;
            index = 0;
            isZeile = false;
            geloest = false;
            pos = new Position[len];
            for (int i = 0; i < len; i++) {
                pos[i] = new Position();    // keine NPE für diese Zeile mehr
            }
        }

        void setPos(int i, int z, int s) {
            pos[i].z = z;
            pos[i].s = s;
        }
    }       
}

public class MeinTestprogramm {
    static Test tst = new Test();
    public static void main(String[] args) {  
        tst.testen();
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S dynamisches Array für Primfaktorzerlegung Allgemeine Java-Themen 13
P dynamisches Array / Vector Allgemeine Java-Themen 2
N Mehrdimensionales dynamisches Array Allgemeine Java-Themen 3
J Unterschied: Polymorphie und Dynamisches Binden Allgemeine Java-Themen 8
N Eclipse Dynamisches-Web-Project auf anderen Rechner transportieren Allgemeine Java-Themen 5
looparda Dynamisches Konsolenprogramm Allgemeine Java-Themen 3
T Dynamisches p:graphicimage im Datagrid Allgemeine Java-Themen 7
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
P Dynamisches Binden Allgemeine Java-Themen 7
X Dynamisches hinzufügen von Panles Allgemeine Java-Themen 4
A Dynamisches Enum? Allgemeine Java-Themen 2
S Dynamisches Manipulieren/Laden von Klassen Allgemeine Java-Themen 4
Z Dynamisches JPanel Allgemeine Java-Themen 10
hdi Dynamisches Instantiieren (Reflections) Allgemeine Java-Themen 4
H2SO3- dynamisches anlegen der dimensionaltität eines arrays Allgemeine Java-Themen 6
reibi Klassenpfad mal anders - dynamisches Laden einer Klasse Allgemeine Java-Themen 7
lumo "Exzessiv" dynamisches generieren Allgemeine Java-Themen 6
R Dynamisches Laden von JNI-Bibliotheken Allgemeine Java-Themen 4
T Dynamisches laden von java Klassen Allgemeine Java-Themen 2
B Dynamisches Linken Allgemeine Java-Themen 15
M Dynamisches ausführen von methoden unbekannter klassen Allgemeine Java-Themen 6
V dynamisches laden von klassen Allgemeine Java-Themen 8
C Dynamisches Nachladen von JARs (Plugin) Allgemeine Java-Themen 3
S Dynamisches Casten Allgemeine Java-Themen 5
M Statisches und dynamisches Binden? Allgemeine Java-Themen 2
S Dynamisches Feld generieren. Allgemeine Java-Themen 10
E Dynamisches Instanziieren Allgemeine Java-Themen 2
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
L Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
M Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben