ToStringBuilderでtoStringメソッドを上書きする方法
ToStringBuilderを利用してtoStringメソッドをオーバーライドする際には、以下の手順で行います。
- org.apache.commons.lang3.builder.ToStringBuilder
- オーバーライド
- 文字列に変換
サンプルコードを以下に示します。
import org.apache.commons.lang3.builder.ToStringBuilder;
public class MyClass {
private String name;
private int age;
// 构造函数、getter和setter等省略
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
上記の例では、MyClassクラスのtoStringメソッドをオーバーライドし、ToStringBuilderのreflectionToStringメソッドを使って、文字列表現を作成しました。このメソッドはクラスの全てのフィールドを使用して、文字列表現を作成し、プライベートフィールドも含みます。
オブジェクトのtoStringメソッドを呼び出すと、MyClass@123abcなどのデフォルトの文字列表現が返されます。しかし、ToStringBuilderを使ってtoStringメソッドをオーバーライドすると、MyClass[name=John, age=25]のようにフィールドと値を含むさらに詳しい文字列表現が返されます。