我有以下课程:
class Label{
static PopOver contextMenu; // can I put = new PopOver(); here?
Label(){
if(Label.contextMenu == null){ //null reference exception here why????
Label.contextMenu = new PopOver();
}
}
}
但是我在Label.contextMenu
上得到一个空引用异常,当我检查null时,我是否会得到一个空引用异常?你也可以在你声明它们的地方初始化静态成员吗?
答案 0 :(得分:2)
您不应该使用此代码获取空引用异常。我测试了它,我没有收到任何错误。
您绝对可以初始化内联静态成员。是否应该这样做取决于具体情况。如果contextMenu永远不会改变,请考虑将其设为最终:
static final PopOver contextMenu = new PopOver();