-1 java autoboxing equals
当我比较具有相同值的两个双基元类型时,为什么等于方法是错误的?但整数不是
public class EqualMethod {
public static void main(String[] args) {
Double value1 = 6.2;
Double value2 = 6.2;
System.out.println(value1 == value2);
Integer number1 = 2;
Integer number2 = 2;
System.out.println(number1 == number2);
}
}
Run Code Online (Sandbox Code Playgroud)
您正在比较参考而不是值.要么:
value1.equals(value2);
或做:
value1.doubleValue() == value2.doubleValue();
在这里阅读更多关于Autoboxing的信息,以找出有时为什么有效(有整数)以及为什么有时它没有.请注意,所有整数都是2:6 = 2 + 4的幂的总和,而小数则不是:6.2 = 4 + 2 + 1/8 + ...
| 归档时间: |
|
| 查看次数: |
3186 次 |
| 最近记录: |