我做了一个简单的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);
}

10-06 09:01