JavaでBeanの内容をデバック等で簡単に出力する方法

a0001 011453 m 1024x680 JavaでBeanの内容をデバック等で簡単に出力する方法

JavaでBeanを作った際にtoString()をオーバーライドしておくと簡単にBeanの内容が出力されるのはご存知かと思いますがtoString()メソッドを簡単にできる方法を書いておきます。


たとえば

public class Bean {
    public Bean(){
    }
    /**
     * UserID
     */
    private String userId = "";
    /**
     * getter
     */
    public String getUserId() {
        return userId;
    }
    /**
     * setter
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String toString() {
        return "userId=" + userId;
    }
}

こんな感じにtoString()をオーバーライドしてかいておくと
Bean bean = new Bean();
~~いろいろと処理をする~~
System.out.println(bean);

といった形でbeanの中身を出力することができます。
このtoString()を簡単に記述する方法です。

1.Apach Commons BeanUtils

http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi

BeanUtils.describe()を使う方法があります。

ただし、これはMapですのでちょっと使い勝手が悪そうです。

2.Apache commons-lang

http://commons.apache.org/proper/commons-lang/

public String toString() {
  return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
}

これはApache commons-langライブラリをいれておけば上記メソッドで簡単に作れるので楽ですね。

一押しです。

3.Eclipse IDEを使う

あまりスマートではないかもしれませんがEclipseのIDEで

ソース→toString生成→toStringにしたいものとか選択して「ok」ボタン押下

これでtoString()生成ができます。
増やしたときは再度生成すればいいので結構楽です。

表示は
Bean名 [フィールド名=フィールド値,~~~]
といった形で作成してくれます。

プロジェクトによってはライブラリを追加するのが厳しいところもあると思いますのでこれも現実的なやりかたですね。

こんな感じで簡単に作れます。
お試しください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">