Objects由来
Java Objects类是Java 7中引入的实用程序类,在Java 8中进行了扩展,以提供一组静态方法来帮助操作Java对象。 它具有null-safe和null-tolerant方法,用于计算对象的哈希码,返回对象的字符串,比较两个对象,null检查等。
根据Brian Goetz(Oracle的Java语言架构师)的说法,它的功能也被引入到该语言的核心中,因此在将来的几年里,Objects类有可能变得更受欢迎。
Objects使用
下面我们将探索如何使用Objects类。
检查参数是否为空
- 经常地,我们经常有针对参数进行null强制测试的方法或构造函数,并在它们为null时抛出异常:
- 对于Java Objects,相同的行为被编码在一行中,如下所示,它将检查bar是否为null并抛出NullPointerException:
- 您还可以使用方法的重载版本来提供其他信息,例如异常消息:
- 如果有必要的话,可以额外的指定异常信息的提供者:
对象比较是否相等
- 如果有两个对象要使用Object.equals(Object)进行相等性比较,则需要在比较之前检查第一个参数是否为null:
- 但是,使用Objects.equals(Object,Object)可以摆脱空检查。 下面的代码产生与前一个相同的输出:
安全地调用Object.toString()
- 有时想调用Object.toString()方法打印Object的字符串表示形式。例如: 想要在发生异常后将对象的状态打印到日志文件中:
- 如果foo为null的话NullPointerException必然被抛出,所以要保证代码的安全,应该改写为:
- 上面的代码有点冗长,我们可以使用Objects.toString(Object)使其更简单:
- 同样地,如果foo为null,可以使用其重载版本提供要打印的默认消息:
微信公众号
分享IT信息技术、北海生活的网站。提供北海本地化的信息技术服务。