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 のソリューションを優先するべきでしょうか? このようなことの長期的な根拠は何ですか?