[Seasar-user:9234] Re: 継承したクラスとTooManyRegistrationRuntimeException

Nishioka Naoto [E-MAIL ADDRESS DELETED]
2007年 7月 18日 (水) 22:09:11 JST


お世話になっております、にしおかです。

Yasuo Higa <[E-MAIL ADDRESS DELETED]>さん:
> ひがです。
> 
> > class Aa
> > class Ab extends Aa
> > 
> > という2つのクラスをdiconで登録した後、
> > S2Container#getComponent(Aa.class)でAaオブジェクトを取得
> > 使用とした場合、
> > TooManyRegistrationRuntimeException
> > が発生してしまいます。
> > 
> > クラスAaから見た場合、instanceof Aaがtrueを戻すのが
> > Aaのオブジェクト/Abのオブジェクトの2つ存在することが
> > 原因だとは思うのですが、こういう場合、クラスではなく
> > コンポーネント名でgetComponentを行うしかないのでしょうか?
> > 
> > それとも、他に何か回避方法はありますでしょうか?
> > 
> class Aa extends AbstractA
> class Ab extends AbstractA
> がお勧めです。

ありがとうございます。

ご教示いただいた方法で例外が発生することは回避することができました。

が、親子関係のクラスが多いとAbstractクラスが増えてしまい
なかなか大変ですね・・・。

もっとも、クラス構成そのものを見直すべきなのかもしれませんが。

--------------------------------------------------------
Nishioka Naoto


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