class G<I extends Integer, N extends Number>{
/*
* using the type parameter used at the class level also for the method below.
* */
public void myMethod(I i, N n){
List<I> listI = new ArrayList<>();
List<? extends Number> listN = listI;
List<N> listN2 = listI;//error
}
}
有人可以向我解释为什么myMethod的第3行说不兼容的类型吗?
N在类声明中定义为“ N extends Number
”。
List<? extends Number> listN = listI;
和
List<N> listN2 = listI;
这里有什么不同吗?