Java漫谈-Long判等

Java漫谈-Long判等

Long判等源码

    public boolean equals(Object obj) {
        if (obj instanceof Long) {
            return value == ((Long)obj).longValue();
        }
        return false;
    }

可见Long类型的判等本身就是对值的判等,故不需要对Long做手动拆箱(即b.longValue())操作:

Long a = 1L;
Long b = 3L;
a.equals(b); //这样既可
a.equals(b.longValue()); //无需这样

list.contains(o)源码

此处以ArrayList的contains为例,可见当为Long时,该方法调用是equals作对比,而equals已自动拆箱,故无需再手动拆箱。
 public boolean contains(Object o) {
    return indexOf(o) >= 0;
 }

public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1; }

本文采用 CC BY-NC-SA 4.0 许可,转载请注明出处与作者。

支持一下

如果这篇文章对你有帮助,欢迎打赏或分享。

打赏支持

评论