[Seasar-dev:221] Re: toString()を自動生成するToStringInterTypeはどうでしょうか?
KOMORI Yusuke
y-komori
2006年 1月 8日 (日) 02:57:44 JST
こもりです。
ブログの方でもちょうど要望がでていますので、よろしくお願いします。
> ●定義例
> @ToString(VERBOSE)
> public class FooDto {
> int intVal;
> Date dateVal;
アノテーションは不要ですよね。
<component name="toStringInterType"
class="org.seasar.framework.aop.intertype.ToStringInterType" />
<component class="FooDto">
<interType>toStringInterType</interType>
</component>
みたいな感じでInterType宣言すればよいと思います。
フォーマットは、ファーストバージョンではこれでよいかと思います。
ToStringInterTypeのプロパティでフォーマットまでカスタマイズできると柔
軟性があがるかもしれません。
こんな感じです。
<component name="toStringInterType"
class="org.seasar.framework.aop.intertype.ToStringInterType">
<property name="prefix">"["</property>
<property name="delimiter">","</property>
<property name="format">"${name}=${val}"</property>
<property name="suffix">"]"</property>
</component>
でも、introduction時にちょっと重くならないか心配ですね。
とにかく、まずはシンプルな実装で良いかと思います。
あと、PropertyInterType との併用が予想されるので、InterTypeChain が必
要ですね。これは私のほうで検討してみます。
On Sun, 08 Jan 2006 00:51:17 +0900, 江里口 温 <on-eri @ vega.ocn.ne.jp> wrote:
> 初めまして、エスエムジーの江里口と申します。
> 小森さん、村田さん、速川さんの後輩です。
>
> 小森さんの発案したPropertyInterTypeって便利ですよね。
>
> 新しいInterTypeの提案なのですが、
> 自動的に詳細なtoStringメソッドを追加してくれるToStringInterType
> を作ってはどうでしょうか?
>
> toStringはデフォルトでは クラス名@内部アドレス の様な文字列を生成します
> が、デバッグ時にはこの情報では足りず、自分でもっと詳細な情報を出すように
> 修正することが多いです。
>
> そこで、
> 以下の様に宣言しておくことで自動的にtoStringメソッドをオーバーライドし、
> クラス内部のフィールド一つ一つを出力するように修正してくれる様なInterType
> があれば便利だと思います。
>
> ●定義例
> @ToString(VERBOSE)
> public class FooDto {
> int intVal;
> Date dateVal;
>
> ●生成するtoStringメソッド
> public String toString() {
> StringBuffer buffer = new StringBuffer(20);
> buffer.append(super.toString());
> buffer.append(",");
> buffer.append("intVal=");
> buffer.append(intVal);
> buffer.append(",");
> buffer.append("dateVal=");
> buffer.append(DateVal);
> }
>
> 出力内容やフォーマットは検討の余地がありますが、どうでしょうか?
>
> --
> 江里口 温
> _______________________________________________
> Seasar-dev mailing list
> Seasar-dev @ lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/seasar-dev
----------------------------------------------
小森 裕介 / Yusuke Komori
E-Mail:y-komori @ nifty.ne.jp
URL:http://www.littleforest.jp/
seasar-dev メーリングリストの案内