4

Java 7 ではObjects、言語の他の部分ですでにカバーされている多くの機能をクラスが提供しているようです。

例を挙げてみましょうtoString()。以下は同じ結果になります。

Objects.toString(12);
String.valueOf(12);

実際、Objects.toStringは次のように定義されています。

public static String toString(Object o) {
    return String.valueOf(o);
}

実際のクラスを扱っているとしましょう。どちらが優先されますか?

Objects.toString(o);
o.toString(); 

ここで言語設計者は何を教えてくれますか? すでに利用可能なソリューションではなく、Objects のソリューションを優先するべきでしょうか? このようなことの長期的な根拠は何ですか?

4

1 に答える 1

10

上記のクラスのドキュメントを参照してください:

このクラスは、staticオブジェクトを操作するためのユーティリティ メソッドで構成されます。これらのユーティリティには、オブジェクトのハッシュ コードを計算し、オブジェクトの文字列を返し、2 つのオブジェクトを比較するためのnull-safe または-tolerant メソッドが含まれます。null

nullしたがって、主に追加のガードからあなたを救うためです.

于 2012-07-21T23:47:35.947 に答える