我是新來的Java(來自C#之間的其他語言),如果我創建一個變量並在類的空白空間中實例化它;Java實例化類空間中的類的數組產生空指針異常
private SomeClass[][] someClassArray = new SomeClass[5][5];
然後,我收到一個NullPointerException。但是,如果我不在那裏實例化,而是在一個方法中工作正常。看起來有些時候我可以逃避這一點。
我試着在文檔中查找,但沒有任何運氣。有人可以提供一些反饋或鏈接來解釋這個,所以我明白如何在Java中正確實例化?
編輯:
在這種情況下它是在一個if語句中使用someClassArray.length
時error'ing。爲什麼當在一個方法中實例化而不是在類中時,它會正確地工作。
以下是另一個例子,其中我分配值時得到的NullPointerException ...
public class LevelClass extends SomeOtherClass{
private Map<String, LevelItemKeyClass> levelItemKeys = new HashMap<String, LevelItemKeyClass>();
private void CreateKeys() {
levelItemKeys.put(new LevelItemKeyClass("abc")); //NullPointerException occurs here
}
}
以相同的方式如上面的情況下,它工作正常的方法中的實例化,但是不是類時。以下工作如預期;
public class LevelClass extends SomeOtherClass{
private Map<String, LevelItemKeyClass> levelItemKeys;
private void CreateKeys() {
levelItemKeys = new HashMap<String, LevelItemKeyClass>();
levelItemKeys.put(new LevelItemKeyClass("abc"));
}
}
'private SomeClass [] [] someClassArray = new SomeClass [5] [5]();'? –
初始化它應該可以正常工作。您需要向任何人展示更多代碼以幫助查找問題。 – resueman
什麼是「一堂課的空白空間」? – Berger