Carmine :
I have the following class, which compiles fine
class MyClass<T> {
MyClass<? extends Number> foo() {
return new MyClass<Integer>();
}
}
but when I change my return type to this
class MyClass<T> {
<R extends Number> MyClass<R> foo() {
return new MyClass<Integer>();
}
}
I start getting error on my return statement, saying
incompatible types: MyClass<java.lang.Integer> cannot be converted to MyClass<R>
talex :
it is because for second case
MyClass<Double> d = foo();
is valid call, but for first one is not.