use*_*361 0 java primitive autoboxing equality equals
根据我的理解,如果我有两个long或者int,==由于自动装箱,测试值相等的运算符有时不起作用.
我需要做些什么来确保==在处理原语时能够在每种可能的情况下工作?
向后兼容性要求(和JLS同意),如果你有一个像这样的表达式
double a = ..
double b = ...
if (a == b) // condition
Run Code Online (Sandbox Code Playgroud)
这种情况必须与自动装箱前的方式相同,就像自动装箱后一样.这意味着自动装箱不能也不能在这里适用.
实际上,如果可以使用取消装箱,则自动装箱从不用于编译==表达式.
Integer i = 1000;
int j = 1000;
System.out.println(i == j); // is true
Run Code Online (Sandbox Code Playgroud)
在这种情况下,选择取消装箱而不是装箱.
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |