[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 メーリングリストの案内