equals的使用

源码:这里只是把Integer拿出来,String,Long 都一样
/** * Compares this object to the specified object. The result is * {@code true} if and only if the argument is not * {@code null} and is an {@code Integer} object that * contains the same {@code int} value as this object. * * @param obj the object to compare with. * @return {@code true} if the objects are the same; * {@code false} otherwise. */ public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }


比较的时候,第一步都是判断是否是类型相同,不同类型是不可以比较的,所以直接返回false

错误的使用方式:

Long a = Long.valueOf(1);
System.out.println(a.equals(1));// false

正确的方式:第一步就是保证比较的两个数的数据类型一样
System.out.println(a.equals(Long.valueOf(1)));

System.out.println(a.equals(1L));//后边加一个 L 也是可以的
原文地址:https://www.cnblogs.com/renjianjun/p/10445471.html