Java 为什么我会在课堂上捕捉到适用性错误?
我编写了以下代码:Java 为什么我会在课堂上捕捉到适用性错误?,java,list,generics,Java,List,Generics,我编写了以下代码: public class HashMapImpl<Key,Value>{ Key key; Value value; List<? extends Key> keylist; List<? extends Value> valuelist; public HashMapImpl(Key k,Value v){ this.key = k; this.value = v
public class HashMapImpl<Key,Value>{
Key key;
Value value;
List<? extends Key> keylist;
List<? extends Value> valuelist;
public HashMapImpl(Key k,Value v){
this.key = k;
this.value = v;
keylist = new ArrayList<Key>();
valuelist = new ArrayList<Value>();
}
public Value put(Key k, Value v){
this.keylist.add(k);
}
}
公共类HashMapImpl{
钥匙;
价值观;
List在本用例中没有理由使用?扩展键
;该语法适用于可能更具限制性的列表类型,但不一定比键
更具限制性。因为编译器不知道它只是一个列表,所以它不允许您添加键这里列表*的泛型类型确实比键
更具限制性
考虑这一点的一种方法是,在Collection
s的情况下:
- 在
列表中添加内容很容易另一个错误是方法put()
List<Key> keylist;
List<Value> valuelist;