java - 如何避免可能的空指针取消引用

标签 java nullpointerexception null null-pointer

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

关于java - 如何避免可能的空指针取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169352/

相关文章:

c++ - 测试 shared_ptr 是否为 NULL

database - 如何建模或查询关系代数中不存在的东西

java - 异常处理Java

java - 什么会导致 Sun 的 JavaKeyStore.engineStore() 方法中出现 NullPointerException?

java - Android getParentFragment() 在 fragment 内的 ViewPager 中返回 null

c++ - 崩溃 : Segmentation fault: Boost serialization loading - calling constructor with null

java - 处理 JSP page/index.jsp 第 51 行时发生异常

java - 改进反射调用的数组转换

Java SSH Ganymed - 尝试使用用户名和密码连接时出现随机错误

java.lang.RuntimeException : Unable to instantiate activity ComponentInfo: java. lang.NullPointerException 异常