gpt4 book ai didi

java - 两个包装器对象如何相等,但同时不相等

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:57 24 4
gpt4 key购买 nike

我有这个代码:

class ABC
{
public static void main(String[] args) {
Integer inta = new Integer(10);
Integer intb = new Integer(10);
if (inta <= intb) {
System.out.println("inta is less than intb");
}
if (inta >= intb) {
System.out.println("inta is greater than intb");
}
if (inta != intb) {
System.out.println("inta is not equal to intb");
}
}
}

这个输出:

inta is less than intb
inta is greater than intb
inta is not equal to intb

谁能解释为什么会这样?一个对象如何同时相等和不相等?

最佳答案

它满足第一个和第二个,因为编译器需要原始类型进行大于(>)或小于比较(<)操作,所以它从Integer自动拆箱至 int .因为您使用了或等于运算符(<=>=),所以条件为真。

它满足第三个,因为编译器检查了两个 Integer对象以查看它们是否是同一对象,因为它们不是,所以条件为真。

关于java - 两个包装器对象如何相等,但同时不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com