我做了一个简单的add
方法,它需要两个参数。
这是代码:
public List<myListType> add(List<myListType> myTypes, myListType myType) {
if (myTypes == null) {
myTypes = new ArrayList<myListType>();
}
int size = myTypes.size();
if (size > 1) {
Boolean lastStatus = myTypes.get(myTypes.size()-1).getAvailabilityStatus();
Boolean secondLastElement = myTypes.get(myTypes.size() - 2).getAvailabilityStatus();
if (lastStatus == null && secondLastElement == null) {
myTypes.remove(myTypes.size()-1);
}
else if (lastStatus.equals(secondLastElement)) {
myTypes.remove(myTypes.size()-1);
}
}
myTypes.add(myType);
return myTypes;
}
我认为在
if
条件下,尤其是在lastStatus
上,实际上可能存在空指针引用。您看到我可以做些什么来避免这种情况吗?谢谢。
最佳答案
假设您使用的是Java 7+,则可以使用Objects.equals
,它可以满足您的两个条件:
Boolean secondLastElement = myTypes.get(myTypes.size() - 2).getAvailabilityStatus();
if (Objects.equals(lastStatus, secondLastElement)) {
myTypes.remove(myTypes.size()-1);
}