[Seasar-dev:227] Re: toString()を自動生成するToStringInterTypeはどうでしょうか?

Koichi Kobayashi koichik
2006年 1月 8日 (日) 22:00:26 JST


小林 (koichik) です.

Date:    Sun, 08 Jan 2006 00:51:17 +0900
From:    江里口 温 <on-eri @ vega.ocn.ne.jp>
To:      seasar-dev @ lists.sourceforge.jp
Subject: [Seasar-dev:220] toString()を自動生成するToStringInterTypeはどうでしょうか?

> 初めまして、エスエムジーの江里口と申します。
> 小森さん、村田さん、速川さんの後輩です。

はじめまして!
エスエムジーさんって,人材豊富ですねぇ.(^^;

> 新しいInterTypeの提案なのですが、
> 自動的に詳細なtoStringメソッドを追加してくれるToStringInterType
> を作ってはどうでしょうか?

考えてみたのですが,InterType じゃなくて MethodInterceptor の方が
いいような.

これは toString() という全てのクラスに備わるメソッドの
「動的な振る舞いを変更」するもので,新たなメソッドを追加
するなどの「静的な構造の変更」をするものではないというのが
理由です.

基本的に Debug メッセージでの用途が主だと思いますから,実行時に
リフレクションバリバリでも問題はないと思います.
例えば commons lang を使って

public class ToStringInterceptor implements MethodInterceptor {
    public Object invoke(final MethodInvocation invocation) throws Throwable {
        return ToStringBuilder.reflectionToString(invocation.getThis());
    }
}

みたいな (メーラで書いただけなのでコンパイルすら通らないかも).
S2 で提供するなら common lang を使わずに独自にフォーマット
するべきかもしれませんが,いずれにせよ InterType ではなく
MethodInterceptor がよさげ.


-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>koichik @ improvement.jp</e-mail>
</signature>



seasar-dev メーリングリストの案内