0

我有以下课程:

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当我检查空值时,我是否应该得到空引用异常?您还可以在声明它们的地方内联初始化静态成员吗​​?

4

1 回答 1

2

您不应使用此代码获得空引用异常。我已经测试过了,我没有收到任何错误。

您绝对可以内联初始化静态成员。是否应该这样做取决于具体情况。如果 contextMenu 永远不会改变,请考虑将其设为 final:

static final PopOver contextMenu = new PopOver();
于 2013-09-04T21:29:35.750 回答