私は以下の2つのクラスを持っていました。オブジェクトがパラメーター化された型の数値にスーパーであるため、パラメーター化された型が (Node? super Number> s0) であるため、私の理解では、コンパイラーは 4 行目 (class WildCard) で文句を言ってはいけません。しかし、コンパイラは 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
}
}