我有以下代码空指针异常的长变量
private Long projectNumber; // with getters and setters
,当我检查projectNumber
是否为空或不是,我在获得空指针异常如果条件
if(selected.getProjectNumber()!=null){
// do something
}
什么可能是这个原因,尽管Long是一个包装类。
如果我更改projectNumber从长到字符串,它工作正常。
更新1
private Project selected = new Project();
public Project getSelected() {
return selected;
}
public void setSelected(Project selected) {
this.selected = selected;
}
我正在选择的值在JSF的ManagedBean在下面的方法
public void onRowSelect(SelectEvent event) {
}
projectNo getter和setter
public Long getProjectNo() {
return projectNo;
}
public void setProjectNo(Long projectNo) {
this.projectNo = projectNo;
}
如果你写'null.getProjectNumber()'('selected'为'null'),你会得到同样的异常。 – Maroun 2013-03-05 08:37:41
你的long不是一个变量,而是一个原始值的Wrapper类。因此,它可以是未初始化的。首先访问包装类的方法而不初始化它会导致NullPointerException。 – 0xCAFEBABE 2013-03-05 08:38:46
@ 0xCAFEBABE如果getter返回一个'long'而不是'Long',不是吗?但我认为,由于OP的变量为“长”,他确实宣布吸气剂也回报... – ppeterka 2013-03-05 08:42:42