首页 > 编程知识 正文

去脸上坑最有效方法,去痘坑最快的方法

时间:2023-05-05 14:22:16 阅读:135318 作者:3790

1.Objects.equals的好处使用JDK1.7提供的objects.equals方法可以非常容易地比较对象,并有效地避免复杂的空指针检查,如:

objects.equals('1','1' ); //trueobjects.equals(null,'1' ); //falseobjects.equals('1',null ); //false objects.equals (空,null ); //true 2.Objects.equals中的凹坑有效地避免了空指针问题,但在处理基本数据类型和封装类型的比较时会出现以下意想不到的问题:

Long a=1L; int b=1; system.out.println (objects.equals (b,a ) ); //false system.out.println (objects.equals (a,b ) ); //falsesystem.out.println(a==b ); //true的前两个居然输出了false! 和想象的不一样!

让我们追踪一下源代码:

publicstaticbooleanequals (objecta,Object b ) return ) a==b )|(a!=nulla.equals(b ); }发现: Objects.equals在比较时自动封装基本类型。 也就是说,将int改为Integer,并与使用Long的equals方法进行了比较。 如下所示。

publicbooleanequals(objectobj ) if ) objinstanceoflong ) returnvalue==((long ) obj ).longValue ); } return false; }结果,一个Integer和一个Long,类型不同,直接返回false,真的有洞!

==不是。 会自动开封

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。