我制作了一个简单的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
上。为了避免这种情况,你能看到我能做些什么吗?
感谢。
答案 0 :(得分:1)
假设您使用的是java 7+,可以使用Objects.equals
,它可以处理您的条件:
Boolean secondLastElement = myTypes.get(myTypes.size() - 2).getAvailabilityStatus();
if (Objects.equals(lastStatus, secondLastElement)) {
myTypes.remove(myTypes.size()-1);
}