ObjectsはクラスのtoStringメソッド、hashCodeメソッド等の作成を便利にするクラスです。
toString
以下のメンバ変数をもつクラスがあるとします。
Integer value1 = 1;
Integer value2 = 1;
Integer value3 = 1;
String valueS1 = "apple";
String valueS2 = "orange";
toStringは以下のような実装が考えられます。
@Override
public String toString() {
return "value1 = " + value1 + ", value2 = " + value2 + ", value3 = " + value3
+ ", valueS1 = " + valueS1 + ", valueS2 = " + valueS2;
}
toStringの実行結果は以下になります。
value1 = 1, value2 = 1, value3 = 1, valueS1 = apple, valueS2 = orange
上記をguavaで実装すると以下になります。
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("value1", value1)
.add("value2",value2)
.add("value3", value3)
.add("valueS1", valueS1)
.add("valueS2", valueS2).toString();
}
toStringの実行結果は以下になります。
Object2{value1=1, value2=1, value3=1, valueS1=apple, valueS2=orange}
書式は固定されてしまうのですが、addをしていくだけで同様の結果を得る事ができました。
あまり使わないかもしれませんが、以下のようにすると、メンバ変数がNullの場合nullだった文字の組み合わせを出力しない事ができます。
Objects.toStringHelper(this).omitNullValues().add(…).add(…)…..
最終更新:2014年01月05日 21:16