Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);
下列表达式结果为真的有( )。
A、(i ==1)
B、(i == d)
C、(d == 1)
D、(i.equals (d))
E、(d.equals (i))
F、(i.equals (42))
选项D,E我觉得返回的应该是true的呀,为什么运行了一下是false呢,i和d中的内容不是相同的吗???
帮忙看一下!!
Long 1 = new Long (42);
Double d = new Double (42.0);
下列表达式结果为真的有( )。
A、(i ==1)
B、(i == d)
C、(d == 1)
D、(i.equals (d))
E、(d.equals (i))
F、(i.equals (42))
选项D,E我觉得返回的应该是true的呀,为什么运行了一下是false呢,i和d中的内容不是相同的吗???
帮忙看一下!!
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
} public boolean equals(Object obj) {
return (obj instanceof Double)
&& (doubleToLongBits(((Double)obj).value) ==
doubleToLongBits(value));
}
根据Integer和Double的equals方法,不是同一个类型比较返回的都是false,