Visa fullständig version : Lite problem med JAVA..
Nån java-kunnig här?
Sitter och sliter håret över att följande inte funkar..
Vector[] data = new Vector[3]
data[1].addElement(something)
får NullPointerException på den sista raden..VARFÖR?
Följande funkar däremot
Vector[] data = new Vector[]{new Vector(), new Vector(), new Vector()}
data[1].addElement(something)
Varför skapar int new Vector[3] tre stycken tomma vectorer som den borde göra? HJÄLP
har snart inte nåt hår kvar på huvudet..
knackwursten
2005-11-03, 10:16
Ingen hejare på java, håller mig till andra språk. Men det är inte så enkelt som att det är (vektorlängd) istället för [vektorlängd], "vanliga" paranteser alltså :)
Det är väl ganska självklart. Du deklarerar en array som kan hålla 3 instanser av Vector, men vektorna har ju inte blivit instantierade innan du kör addElement(), således blir det NPE.
Jo jag trodde new skulle fixa det..men det gör den alltså inte. Men hur gör jag för att instansiera vektorerna då?
kan ju inte kör data[0] = new Vector() för då blir det ju NPE.
Att deklara en array har ingen implicit instantiering av objekten den ska innehålla. new instantierar arrayen, inte objekten i den.
Vector[] data = new Vector[3]
data[0] = new Vector();
data[0].addElement("Fidde");
... detta fungerar utmärkt eftersom du instantierar både arrayen och objektet.
Att deklara en array har ingen implicit instantiering av objekten den ska innehålla. new instantierar arrayen, inte objekten i den.
Vector[] data = new Vector[3]
data[0] = new Vector();
data[0].addElement("Fidde");
... detta fungerar utmärkt eftersom du instantierar både arrayen och objektet.
:thumbup:
Hah! Jag hann före dig, j "java" wrzd! *flex*
mm så det normala är att dra en forloop efter och köra new på alla.
Tackar så mycket för hjälpen! :bow:
Hah! Jag hann före dig, j "java" wrzd! *flex*
Hehe vaffalls! :D
mm så det normala är att dra en forloop efter och köra new på alla.
Yes. Måste du göra för alla referenstyp-arrayer. För primitivarrayer initieras alltid alla element till 0, 0.0 eller false beroende på typ.
vBulletin® v3.8.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.