ApacheCommonsのToStringBuilderを使用できます。
ドキュメントから:
このメソッドの一般的な呼び出しは次のようになります。
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
詳細:
このクラスを使用すると、任意のクラスまたはオブジェクトに対して、一貫性のある優れたtoString()を構築できます。このクラスは、次の方法でプロセスを簡素化することを目的としています。
すべてのタイプを一貫して処理するフィールド名がnullを一貫して処理できるようにし、配列と多次元配列を一貫して出力できるようにします。クラス階層を処理するオブジェクトとコレクションの詳細レベルを制御できるようにします。このクラスを使用するには、次のようにコードを記述します。
public class Person {
String name;
int age;
boolean smoker;
...
public String toString() {
return new ToStringBuilder(this).
append("name", name).
append("age", age).
append("smoker", smoker).
toString();
}
}
または、リフレクションを使用してテストするフィールドを決定する方法があります。これらのフィールドは通常プライベートであるため、メソッドreflectionToStringはAccessibleObject.setAccessibleを使用してフィールドの可視性を変更します。適切な権限が正しく設定されていない限り、これはセキュリティマネージャでは失敗します。また、明示的にテストするよりも時間がかかります。このメソッドの一般的な呼び出しは次のようになります。
public String toString() {
return ToStringBuilder.reflectionToString(this);
}