方法与泛型

时间:2017-04-04 05:47:46

标签: java generics inner-classes

我正在学习泛型,虽然学习时遇到了一个示例代码,根据我应该打印'ok'

然而,我正在追求极限。

   Exception in thread "main" java.lang.ClassCastException: Test$B cannot be 
     cast to java.util.Collection

有人可以帮我解决这个问题。

public class Test {
    @SuppressWarnings("unchecked")
    public static <U extends B> U get() {
        return (U) new B();
    }

    public static void main(String[] args) {
        A<B> a = new A<>(get());
    }

    static class A<T> {
        A(Collection<? extends T> lst) {
            System.out.println("Bad constructor");
        }

        A(T e) {
            System.out.println("ok");
        }
    }

    static class B {
    }
}

enter image description here

0 个答案:

没有答案