0

以下のコードがコンパイルに失敗するのはなぜですか? 同等のエラーを示すために、この例を (より少ないクラスに) 簡略化できますか?

生成されるエラー メッセージは次のとおりです。

func(capture of ? extends A) in ... は B に適用できません

    private static interface A {}
    private static class B implements A {}

    private static class C<T> {
        private final T t;
        private C(T t) {
            this.t = t;
        }
        private void func(T t) {}
    }

    @Test
    public void doTest() {
        B b = new B();
        C<? extends A> c = new C<B>(b);
        c.func(b); // fails here
    }
4

2 に答える 2