之前是我没问清楚,我的纠结点在与两个Integer对象如何判断相等比较方便,因为前者需要判断null,
Integer a = null;
Integer b = new Integer(128);
System.out.print(Objects.equals(a,b));//所以用这个方法来判断相等,就不用判断null了
4 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
题主第一句得出的结论是错误的:
"一般的当Integer的内容值超过-128~127的时候,如果与int使用==就会返回false。"
尝试了一下 int = 128 或者 int = 127,使用==同样返回true。
public static void main(String[] args) {
int a = 127;
Integer i = new Integer(127);
System.out.println(a == i);
int b = 128;
i = new Integer(128);
System.out.println(b == i);
}
第二个 Integer对象是否为空的问题,参考Integer.equals的实现 先判空,在执行判断条件。
慕雪6442864
TA贡献1812条经验 获得超5个赞
int a=128;
Integer b=xx;
比较: if(Integer.valueOf(a).equals(b)) ,这样比较可以规避null问题
添加回答
举报
0/150
提交
取消
