とのようnode<E>
な2つの操作を持つジェネリック型があり、それまでにインスタンスになる場合、コンパイラが少なくとも使用を許可しないのはなぜですか?他のタイプが許可されない理由は理解できますが、ノードのタイプは少なくとも数値になると確信しているので、数値タイプの入力を許可しないのはなぜですか?setData(E Type)
E getData()
s0
node
node<? extends Number>
s0.setData(Number Type)
setData
私のコードは次のようになります:
class Node<E> {
private E data;
// ...
public void setData(E obj) { data = obj; } // (1)
public E getData() { return data; } // (2)
// ...
}
Node<? extends Number> s0 = new Node<Number>();
s0.setData(200); //this is not allowed why?
Node<Number> s0 = new Node<Number>();
s0.setData(100); //But this is allowed!