我對這個論壇的東西很新。我總是很擔心在論壇上發帖,但是經過兩個星期的抨擊,我的頭對着我的代碼試圖讓它工作,我終於讓步了。下面的代碼是一些較大代碼的關鍵部分,但我認爲,有些人指出了問題部分。我有一個對象的二維數組,它應該在創建時默認初始化。但是,這似乎並沒有發生,值仍然爲空。這可能是Java不能通過引用傳遞的結果嗎?如果是這樣,那麼爲什麼原始的二維數組實例化完美呢?預先感謝你,拉斯。Java中的空指針錯誤?
class ObjectThing
{
int someInt;
double someDouble;
public ObjectThing()
{
someInt = 0;
someDouble = 0;
}
synchronized private void someIntIncrement()
{
someInt++;
}
synchronized public void addSomeDouble (double sd)
{
someDouble += sd;
someIntIncrement();
}
synchronized public String toString()
{
return someInt + "," + someDouble;
}
}
class AnotherObject
{
String name;
ObjectThing [][] someObjectMAtrix;
double [][] someDoubleMAtrix01;
double [][] someDoubleMAtrix02;
public AnotherObject()
{
}
private void initDouble (double [][] mat)
{
for (double [] i: mat)
for (double j: i)
j = 0;
}
private void initObject (ObjectThing [][] so)
{
for (ObjectThing [] i: so)
for (ObjectThing j: i)
j = new ObjectThing();
}
public void init (int r, int c)
{
someObjectMAtrix = new ObjectThing [r][c];
someDoubleMAtrix01 = new double [r][c];
someDoubleMAtrix01 = new double [r][c];
initObject (someObjectMAtrix);
initDouble (someDoubleMAtrix01);
initDouble (someDoubleMAtrix02);
}
}
class Driver
{
public static void main (String [] args)
{
initializeMethod();
}
public void initializeMethod()
{
AnotherObject [] anotherObjectArray = new AnotherObject [1];
for (AnotherObject i: anotherObjectArray)
{
i.init(72,72);
}
}
}
如果您有像標題所示的NullPointerException,那麼將它包含在您的問題中也很有用。 – wolfcastle
「這可能是Java不能通過引用傳遞的結果嗎?」不,你做錯了。也可以提供一個具有可重現錯誤的較小樣本? – FailedDev
你能提供堆棧跟蹤嗎? – therin