我有这个代码:
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.callTest();
}
public void callTest() {
GenericTest gt = new GenericTest<Date>(); // this line don't compile
gt.test(new Date());
}
class GenericTest<T extends Date & List> {
T x;
public void test(T y) {
System.out.println(x.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我理解为什么new GenericTest<Date>()不编译,这是因为Date没有实现List接口,但是如果我实例化GenericTest gt = new GenericTest()没有泛型,整个代码工作,我不明白为什么.方法测试需要(T y)where T extends Date和implements List,但它可以使用gt.test(new Date()).