判断Integer值相等最好不用==最好使用equals

来源:互联网 发布:超市数据分析报告格式 编辑:程序博客网 时间:2024/06/05 19:06

又犯了一个低级错误。在开发测试阶段误使用了Integer的==,自己测试和开发测试没有暴露问题。但是运行了一段时间的系统出问题了,debug才发现是整形的==导致错误。但是为什么测试的时候没有出现了,于是看了下Java的Integer。

public static Integer valueOf(int i) {        assert IntegerCache.high >= 127;        if (i >= IntegerCache.low && i <= IntegerCache.high)            return IntegerCache.cache[i + (-IntegerCache.low)];        return new Integer(i);    }

原来-128  --- 127 之间的数字是没有问题的,一旦不再这个范围就会导致问题。因为出了这个范围的整数将会被new

阅读全文
0 0
原创粉丝点击