我有以下课程,可以正常编译
class MyClass<T> {
MyClass<? extends Number> foo() {
return new MyClass<Integer>();
}
}
但是当我将退货类型更改为此
class MyClass<T> {
<R extends Number> MyClass<R> foo() {
return new MyClass<Integer>();
}
}
我的return语句开始出错,说
incompatible types: MyClass<java.lang.Integer> cannot be converted to MyClass<R>
答案 0 :(得分:2)
这是因为第二种情况
MyClass<Double> d = foo();
是有效呼叫,但第一个不是。