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/

相关文章:

java - 计算 Gmail 收件箱中的电子邮件数量

java - 为什么 ProgressMonitor 在第二次调用时不显示?

java - 即使返回的 ArrayList 不为空,广度优先搜索也会返回空异常指针

java - 我收到空指针异常,但找不到原因

java - 以大量 nul 字符结尾的 StringBuilder

java - 从准备好的语句自动生成主键 ID

java - 如何为 JTable 标题设置自定义工具提示位置?

java - 调用 DisplayTag 返回 NullPointerException

null - Kotlin设置为Null(如果不为Null)

Ruby 问题 - == nil 还是 nil?