Java 7中对象静态方法的原因

Jam*_*sev 4 java java-7

似乎在Java 7中,Objects类提供了该语言其他部分已经涵盖的许多功能.

toString()为例.以下将产生相同的结果:

Objects.toString(12);
String.valueOf(12);
Run Code Online (Sandbox Code Playgroud)

实际上,Objects.toString定义为:

public static String toString(Object o) {
    return String.valueOf(o);
}
Run Code Online (Sandbox Code Playgroud)

假设我们正在处理实际的课程.一个优先于另一个?

Objects.toString(o);
o.toString(); 
Run Code Online (Sandbox Code Playgroud)

语言设计师在这里告诉我们什么?我们应该开始更喜欢对象的解决方案而不是现有的解决方案吗?这样的事情的长期理由是什么?

Joe*_*oey 10

请参阅所述课程的文档:

该类包含static用于操作对象的实用程序方法.这些实用程序包括null-safe或null-tolerant方法,用于计算对象的哈希代码,返回对象的字符串以及比较两个对象.

所以这主要是为了让你免于额外的null后卫.