【进阶】-Java Objects

路飞
路飞
管理员
43
文章
评论字数 479阅读1分35秒

【进阶】-Java Objects-图片1

Objects由来

Java Objects类是Java 7中引入的实用程序类,在Java 8中进行了扩展,以提供一组静态方法来帮助操作Java对象。 它具有null-safenull-tolerant方法,用于计算对象的哈希码,返回对象的字符串,比较两个对象,null检查等。

根据Brian Goetz(Oracle的Java语言架构师)的说法,它的功能也被引入到该语言的核心中,因此在将来的几年里,Objects类有可能变得更受欢迎。

Objects使用

下面我们将探索如何使用Objects类。

检查参数是否为空

  1. 经常地,我们经常有针对参数进行null强制测试的方法或构造函数,并在它们为null时抛出异常:【进阶】-Java Objects-图片2
  2. 对于Java Objects,相同的行为被编码在一行中,如下所示,它将检查bar是否为null并抛出NullPointerException
    【进阶】-Java Objects-图片2
  3. 您还可以使用方法的重载版本来提供其他信息,例如异常消息:【进阶】-Java Objects-图片2
  4. 如果有必要的话,可以额外的指定异常信息的提供者:【进阶】-Java Objects-图片2

对象比较是否相等

  1. 如果有两个对象要使用Object.equals(Object)进行相等性比较,则需要在比较之前检查第一个参数是否为null【进阶】-Java Objects-图片2
  2. 但是,使用Objects.equals(Object,Object)可以摆脱空检查。 下面的代码产生与前一个相同的输出:【进阶】-Java Objects-图片2

安全地调用Object.toString()

  1. 有时想调用Object.toString()方法打印Object的字符串表示形式。例如: 想要在发生异常后将对象的状态打印到日志文件中:
    【进阶】-Java Objects-图片2
  2. 如果foo为null的话NullPointerException必然被抛出,所以要保证代码的安全,应该改写为:【进阶】-Java Objects-图片2
  3. 上面的代码有点冗长,我们可以使用Objects.toString(Object)使其更简单:【进阶】-Java Objects-图片2
  4. 同样地,如果foo为null,可以使用其重载版本提供要打印的默认消息:【进阶】-Java Objects-图片2

weinxin
微信公众号
分享IT信息技术、北海生活的网站。提供北海本地化的信息技术服务。
 最后更新:2018-10-19
路飞
  • 本文由 路飞 发表于2018年10月15日 10:53:44
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定