的Java是不是让我加类型声明的子类,这个类Java泛型插入的通配符
public class Exam<T> {
public void set(Holder<? super T> hold){
}
public T get(Holder<? extends T> holder){ return holder.get();}
public static void main (String[] args){
Exam<Question> eq = new Exam<Question>();
eq.set(new Holder<Identification>());
}
}
如果鉴定是问题的一个子类。
,这我holder类看起来像
public class Holder<T> {
T item;
public void set(T item){ this.item = item; }
public T get(){return item;}
}
错误
The method set(Holder<? super Question>) in the type Exam<Question> is not applicable for the arguments (Holder<Identification>)
有什么编译器错误? – vulkanino
@vulkanino更新了它。 – user962206
'Identification'是'Question'的子类,而你在'set'中声明它应该是一个超类。 – vulkanino