[Seasar-user:17286] Re: [teeda] Listを使用したforEachの表示について

木村 究道 [E-MAIL ADDRESS DELETED]
2009年 4月 21日 (火) 09:54:43 JST


小林 様

木村です。

> しかし,S2AOP は J2SE1.4 で実装されているため,
> generics には対応していません.
了解しました。
しかし、今回はトレース出力であったため、AOPを外
すことで対応できますが、どうしてもAOPが必要な場
合があるかもしれません。その時は public フィー
ルドとすることで対応できますが…
できないこともありそうな気がしてきました…

なんだかよくわからなくなってきましたので、単刀
直入に質問します。
S2AOP を J2SE1.5以上 で実装する予定はないでしょ
うか?

よろしくお願い致します。

                   以 上

Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
> 
> Date:    Mon, 20 Apr 2009 20:06:57 +0900
> From:    木村 究道 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17283] Re: [teeda] Listを使用したforEachの表示について
> 
>> まず解決法は、customizer.dicon の下記の3行(7〜9行目)を削除する
>> ことで、期待通りの動きとなりました。
>>
>>     <initMethod name="addCustomizer">
>>       <arg>traceCustomizer</arg>
>>     </initMethod>
>>
>>
>> そこで質問です、削除したカスタマイザはトレース出力のカスタマイザと
>> 理解しておりますが、この解決法で問題ないでしょうか?
> 
> なるほど,それは盲点でしたね.
> 
> S2AOP は対象のクラスをサブクラス化してメソッドを
> オーバーライドし,インターセプタを呼び出します.
> しかし,S2AOP は J2SE1.4 で実装されているため,
> generics には対応していません.
> 
> そのため,
> 
> public List<ListTestDto> getListDtoItems()
> public void setListDtoItems(List<ListTestDto> listDtoItems)
> 
> はオーバーライドされて
> 
> public List getListDtoItems()
> public void setListDtoItems(List listDtoItems)
> 
> となってしまい,generics の型引数は失われます.
> こうなると,List を <input> の内容で更新
> することはできません.
> 
> public フィールドであれば AOP の影響を
> 受けなかったのですけどね.
> 
> 

-- 
-----------------------------------------------------
 十八ソフトウェア株式会社
 システム開発部 アプリケーション開発課  木村 究道
 〒850-0861 長崎市江戸町6-5江戸町センタービル6F
 TEL:095-824-0018  FAX:095-827-8754
 E-mail: [E-MAIL ADDRESS DELETED]
-----------------------------------------------------



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