[Seasar-dev:249] Re: [S2Container] ToStringInterceptorコミットのお願い

Koichi Kobayashi koichik
2006年 1月 14日 (土) 04:15:54 JST


小林 (koichik) です.

Date:    Sat, 14 Jan 2006 03:49:32 +0900
From:    江里口 温 <on-eri @ vega.ocn.ne.jp>
To:      seasar-dev @ lists.sourceforge.jp
Subject: [Seasar-dev:246] Re: [S2Container] ToStringInterceptorコミットのお願い

> ●余談ですが、
> 
> 配列対応のために,コードが膨らんでしまいました。
> 
> >     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のプリミティブ型配列って、扱いが面倒ですね。

java.lang.reflect.Array を使ってみたところ,こんな感じになりました.

        if (value == null) {
            ・・・
            return;
        } else if (value.getClass().isArray() == false) {
            ・・・
            return;
        }

        buf.append(ARRAY_BEGIN);
        for (int i = 0; i < Array.getLength(value); i++) {
            if (i != 0) {
                buf.append(ToStringInterceptor.FIELD_SEPARATOR);
            }
            append(buf, Array.get(value, i));
        }
        buf.append(ARRAY_END);




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



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