2012-05-09 11 views
2

私は多くのフィールドを持つJava Beanを持っています。私はtoString() StringBuilderを使用して直接フィールド名を使用してオーバーライドする方法を知っています。フィールド名なしで、より良い方法でそれを行う方法はありますか?JavaでtoString()をオーバーライドする簡単な方法

ありがとうございます。

P.S:このBeanは既に自分の製品に実装されています。

答えて

9

私は、多くの場合、Apacheの共通ラングのToStringBuilderので、などを使用します。

public String toString() { 
    return ToStringBuilder.reflectionToString(this); 
} 

これは問題のオブジェクトのtoStringを生成するためにリフレクションを使用しています。

+4

そのパフォーマンスオーバーヘッドは非常に大きくなる可能性があることに注意してください。それがまれに使用されたり、デバッグの目的で使用されている場合は、完璧です。 – Voo

+0

これはAndroidで使用できますか?私のIDEは、 'org.apache.commons.lang3.builder.ToStringBuilder;'をインポートしようとすると、それを見つけることができません。 – Azurespot

1

明示的に、またはhereのようなヘルパークラスを使用してリフレクションを使用できます。私は、リフレクションにはフィールド名を直接使用するためのオーバーヘッドがあると仮定します。

関連する問題