[seasar-dev:1220] Re: S2Util

Masanobu Shimura [E-MAIL ADDRESS DELETED]
2010年 8月 30日 (月) 22:12:18 JST


小林様

早速の対応有難う御座いました。
これで大変使いやすくなりました。

志村

2010年8月30日19:30 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:

> 小林 (koichik) です.
>
> > > Date:    Sat, 28 Aug 2010 15:18:18 +0900
> > > From:    Masanobu Shimura <[E-MAIL ADDRESS DELETED]>
> > > To:      [E-MAIL ADDRESS DELETED]
> > > Subject: [seasar-dev:1214] Re: S2Util
> > >
> > > > org.slim3.utilのBeanUtilの Copyで CopyOptions付きが大変使い易いのですが、
> > > > これを S2UTILに取り込む事を検討して頂けませんでしょうか。
>
> Seasar2 の Beans を Slim3 の BeanUtil 風にして
> Seasar2 の BeanUtil と統合しました.
> というか,元の BeanUtil は跡形なし.
> Slim3 では Beans の機能が一部削られているのですが,
> S2Util ではそのまま残してます.
>
> また,Slim3 では BeanUtil の copy() メソッドは
>
> copy(Object, Object);
> copy(Object, Map);
>
> のようにオーバーロードされていて,Map は
> generics になっていない原型が使われています.
> 原型が使われているのは
>
> copy(Object, Map<String, Object>)
>
> などとすると第 2 引数に Map<String, String> を
> 指定した場合などに copy(Object, Object) の方が
> 呼ばれてしまうのに対処しているものと思われます.
> おかげで copy(Object, Object) が呼ばれることは
> ないのですが,本来は Map<String, String> を
> 渡したらコンパイルエラーになってほしいわけで,
> そこがちょっと悩ましい.
>
> そこで S2Util ではオーバーロードはやめて,
>
> copyBeanToBean(Object, Object);
> copyBeanToMap(Object, Map<String, Object>);
>
> のようにしました.
> ついでに createAndCopy() 相当は
>
> copyBeanToNewBean(Object, Class<?>);
> copyBeanToNewMap(Object);
> copyBeanToNewMap(Object, Class<?>);
>
> のようにしました.
>
> ちょっと冗長かなという気もしますが,ひとまず
> 安全な方にしてみたということで.
>
> 間違いがあってもコンパイルエラーにならなくて
> いいから短いメソッド名の方がいいなど,
> 意見があったらお願いします>ALL
>
>
> また,CopyOptions のインスタンスを生成する
> static メソッドを定義した CopyOptionsUtil を
> 用意したので,これを static import すると
>
> copyBeanToBean(src, dest, excludeNull());
>
> などと書けます.
> 戻り値は CopyOptions なので,
>
> copyBeanToBean(src, dest, excludeNull().excludeWhitespace());
>
> とチェーンすることが出来ます.
> Seasar2 の Beans だとメソッド名は
> excludesNull() とかだったのですが,
> CopyOptions(Util)? のメソッド名は
> Slim3 に合わせて excludeNull() など
> 's' がなくなっています.
>
>
> --
> <component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>     <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>     <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-dev mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dev
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dev/attachments/20100830/ab9b08ce/attachment.html>


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