【发布时间】:2016-02-24 23:32:32
【问题描述】:
我是 Java 新手(来自 C# 以及其他语言),如果我创建一个变量并在这样的类的空白空间中实例化它;
private SomeClass[][] someClassArray = new SomeClass[5][5];
然后我收到 NullPointerException。但是,如果我不在那里实例化而是在一个方法中它工作正常。似乎其他时候我可以侥幸逃脱。
我尝试在文档中查找此内容,但没有任何运气。有人可以提供一些反馈或链接来解释这一点,以便我了解如何在 Java 中正确实例化吗?
编辑:
在这种情况下,在 if 语句中使用 someClassArray.length 时会出错。为什么在方法中而不是在类中实例化时这会正常工作。
以下是我在赋值时得到 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]();? -
以这种方式初始化它应该可以正常工作。您需要向任何人展示更多代码以帮助找到问题。
-
什么是“类的空白”?
标签: java variables nullpointerexception instantiation