[Seasar-dev:246] Re: [S2Container] ToStringInterceptorコミットのお願い
江里口 温
on-eri
2006年 1月 14日 (土) 03:49:32 JST
To:小林さん
レビューありがとうございます。
> 1.スーパークラスのフィールドが表示されない.
> 2.setAccesible(boolean) について.
> 3.フィールド全体を角括弧で囲んで欲しい
> 4.配列
対応しました。
> 個人的には char や String は ' とか " で囲んで欲しかったりしますが,
> Commons Lang の ToStringBuilder がそうしてないからこれはいいか...
ついでにこれも対応しました。
# 文字列内の"などのエスケープは、やりすぎかと思い、止めておきました。
●対応前の出力例
examples.aop.tostringinterceptor.EntityImplImpl @ 13f3045,implImplValue=1
●対応後の出力例
examples.aop.tostringinterceptor.EntityImplImpl @ 13f3045[
implImplValue=1,implValue=1,intValue=1,staticIntValue=12
,doubleValue=12.3,stringValue="1234",staticFinalIntValue=12345,mapValue={}
,innerEntity=examples.aop.tostringinterceptor.InnerEntity @ 17a29a1[
innerInt=0,innerLong=234,str="foo",charArray={'a','b','c'}
]
]
※見易さのために適宜改行を入れてます。
※クラスの継承関係は、以下の様になっています。
public class EntityImpl extends Entity {
int implImplValue = 1;
}
public class EntityImplImpl extends EntityImpl {
int implValue = 1;
}
●余談ですが、
配列対応のために,コードが膨らんでしまいました。
> byte[] array = (byte[]) value;
> for (int i = 0; i < array.length; i++) {
> if (i != 0) {
> buf.append(ToStringInterceptor.FIELD_SEPARATOR);
> }
> buf.append(array[i]);
> }
の「byte」部分を他のプリミティブ型にそれぞれ置き換えたコードが必要に
なってしまいました。
Javaのプリミティブ型配列って、扱いが面倒ですね。
この仕様で良ければ、コミットをお願いします。
--
江里口 温
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: ToStringInterceptor.zip
型: application/x-zip-compressed
サイズ: 9588 バイト
説明: 無し
URL: http://lists.sourceforge.jp/mailman/archives/seasar-dev/attachments/20060114/423a6e21/ToStringInterceptor.bin
seasar-dev メーリングリストの案内