Integer是一个班级.所以要比较你需要使用的对象equals而不是==
使用较短的Integer实际发生的情况是,如果您Integer使用该方法valueOf,则总是获得-128和127之间的值的相同缓存实例.因此在这种情况下==有效.
如果您不使用valueOf运算符显式创建新实例,则它不起作用new.
为了更清楚,我编写了valueOf的当前实现
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |