我有 2 节课如下。据我了解,编译器不能在第 4 行(类 WildCard)抱怨,因为我的参数化类型是(Node?super Number> s0),因为对象是参数化类型中的数字的超级对象。但是编译器在 4,8 和 9 抱怨。为什么会这样。
public class Node<E> {
private E data;
public void setData(E obj) {
data = obj;
}
public E getData() {
return data;
}
}
public class WildCard {
static void checkIt(Node<? super Number> s0)
{
Object object=new Object(); //1
Number number =1.5; //2
Integer integer=10; //3
s0.setData(object); //4
s0.setData(number); //5
s0.setData(integer); //6
object=s0.getData(); //7
number=s0.getData(); //8
integer=s0.getData(); //9
}
}