【发布时间】:2014-05-03 11:28:55
【问题描述】:
尽管首先使用 if 语句检查值是否为空,但我得到一个空指针异常。这是我的代码:
Collections.sort(taskList,new Comparator<Task>(){ //here is one NPE
@Override
public int compare(Item t1,Item t2){
if((t1.getAssignedString()!=null)&&(t2.getAssignedString()!=null)){ //here is second NPE
int x=t1.getAssignedString().compareTo(t2.getAssignedString());
if(x!=0){return x;}
else{
Integer x1=(int)(4*(((Task)t1).getAllottedTime()));
Integer x2=(int)(4*(((Task)t2).getAllottedTime()));
return x1.compareTo(x2);
}
}
else{System.out.println("null value");
return 0;}
}
});
为什么这个检查不起作用?有没有办法解决这个问题?
【问题讨论】:
-
您正在检查
t1.getAssignedString(),但不是t1。