我正在浏览 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/