[Seasar-user:794] componentのinterfaceが継承関係をもつとき

B zf7.so-net.ne.jp nakamura toshihiro taedium
2004年 6月 7日 (月) 03:04:14 JST


中村です。

componentのinterfaceがextendsをしているときですが、
S2Container#getComponent(親のinterfaceのClass)とした場合
ComponentNotFoundRuntimeExceptionが発生します。
(ちょっと説明しにくいのですがcodeをみてもらえれば単純な話です)

これはサポートされていてもいいのではと思ったのですが
どうでしょうか?

以下、Exceptionが発生する場合のdiconの設定と継承関係です。
----------------------------------------------------

<components>
    <component name="hoge" class="test.HogeImpl"/>
</components>


public interface Foo {
}


public interface Hoge extends Foo {
}


public class HogeImpl implements Hoge {
}


public class HogeClient {
    private static final String PATH ="test/hoge.dicon";        
    public static void main(String[] args) {
        S2Container container = S2ContainerFactory.create(PATH);
        Foo foo = (Foo)container.getComponent(Foo.class);
    }
}

--
Nakamura Toshihiro






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