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 也是可以的

posted on 2019-02-27 17:52  淡淡人生过  阅读(295)  评论(0编辑  收藏  举报

导航