[Seasar-user:10896] Re: [Teeda]InterTypeとInterceptorの仕様
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 10月 5日 (金) 23:00:07 JST
小林 (koichik) です.
Date: Fri, 05 Oct 2007 21:53:50 +0900
From: "TAKEUCHI Shinichi / 竹内 伸一" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10895] [Teeda]InterTypeとInterceptorの仕様
> 1)InterTypeで追加したメソッドに対してInterceptorをかけられるか?
できません.
> 2)既存のメソッドをInterTypeでOverrideすることはできるのか?
できます.
> 同じ名称とパラメータで追加しようとしたらDuplicateだというExeption
> になったのですが、通常のクラス定義のような@Override はできない
> ということでしょうか?
この情報だけだと詳細が分かりませんが,
1) のように Interceptor の適用される
メソッドを InterType でオーバーライド
しようとすると Duplicate になります.
そうでなければオーバーライド可能なはずです.
Interceptor はメソッドのオーバーライドで
実現していて,同じことは InterType でも
できます.
# これは 1) が不可能な理由でもあります.
実際にエンハンスされたクラスを生成する
Javassist から見れば,Interceptor と
InterType に大した違いはありません.
> Seasar.orgの全文検索もしたのですが、InterTypeはめぼしい情報が見
> つかりませんでした。
InterType はいいアイディアだ,そんな風に
思っていた時期が僕にもありました.
しかし,実際にはそれほど便利でもなかったので
あまり使われていないのだと思います.
その代替案が public フィールドです.
Teeda との組み合わせでも public フィールドの方が
ずっとオススメです.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内