java - 什么时候使用 'java.util.Objects.*' ?

标签 java oop java-7

我正在浏览 Java 7功能,他们谈到了 java.util.Objects类。

我不明白的是两者之间的功能差异是什么

java.util.Objects.toString(foo)
vs
foo == null ? "":foo.toString()

我所能看到的只是空检查和函数符号,而不是 OOP风格。

我错过了什么?

最佳答案

java.util.Objects.toString()的主要优势是您可以轻松地在可能为 null 的返回值上使用它,而不是需要创建一个新的局部变量(或者更糟糕的是调用该函数两次)。

比较

Foo f = getFoo();
String foo = (f==null) ? "null" : f.toString();

或令人畏惧和引发错误的

String foo = (getFoo()==null) ? "null" : getFoo().toString()

到基于 Objects.toString 的版本

String foo = Objects.toString(getFoo());

关于java - 什么时候使用 'java.util.Objects.*' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31199745/

相关文章:

Java - 处理游戏中可切换效果的最佳方法

Java:将枚举传递给方法

java - spring mvc中上传下载xlsx文件

java - 如何使用jdk7移动目录

java - 如何从 IBM 安装管理 (IIM) 安装 jdk 1.7 到 WebSphere 8.5.0.0(在 IBM RAD 上)?

java - 字符串中字符的快速排序

c++ - 什么是 Mixin(作为一个概念)

php - 如何从扩展 PHP 类中的静态调用中获取类名?

python - 如何在Python中访问类对象属性

oracle - 是不是 "safe"是为JDK7平台开发的?