Veröffentlicht 29. Juni 200817 j Hi Ich bin gerade dabei einen 2_3_4Baum zu implementieren und hatte eigentlich gehofft, dass ich meinen alten BBaum nur leicht verändern muss, aber ich habe Probleme bei den Konstruktoren ... am besten ich zeig es euch einfach: class Node2_3_4<T extends Comparable<T>> { //Atribute public T[] keys; public Node2_3_4<T>[] children; // Konstruktoren public Node2_3_4() { for(int i=0; i<3; i++){ this.keys[i]=null; } for(int i=0; i<4; i++){ this.children[i]=null; } } ... An sich werden mir keine Fehler angezeigt aber wenn ich die datei, was heißt TestTree ausführe, kommt ne NullPointerException hat jemand eine Idee wie ich es verändern kann ohne jedes Objekt einzeln als Attribut zu wählen?Node2_3_4.txtTree2_3_4.txtTestTree2_3_4.txt
29. Juni 200817 j Hallo, public Node2_3_4<T>[] children; besagt, dass Du ein Array [] vom Typ T mit dem Namen children anlegst. public Node2_3_4() { for(int i=0; i<3; i++) this.keys[i]=null; } Hier greifst Du immer auf das 1-te Element zu. Frage Dich mal: Wie viele Elemente hat denn Dein Array? HTH Phil
29. Juni 200817 j oder um es deutlicher zu formulieren: Du musst Deine Arrays noch initialisieren, z.B. im Konstruktor: keys = new T[4]; Peter
29. Juni 200817 j Mir ist dabei sehr wohl bewusst, dass ich das Array noch nicht initialisiere, aber wenn ich nach dem üblichen Schema gehen würde, was heißt: int size=3; T[] objekt = T[size]; dann krieg ich ne Fehlermeldung, dass kein generisches Array dieser Art angelegt werden kann
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.