我有简单的通用父类,假设我在这个类中有一个列表:
public class GenericParent<N extends Number> {
protected List<String> s;
}
我还有一个从这个类扩展的子类:
public class GenericChild extends GenericParent {
private void testMethod() {
for (String o : s) {
//.....
}
}
}
我在此行for (String o : s)
中获得了不兼容的类型,并告诉我s
不是String,它是对象。但如果我像我这样定义我的子类public class GenericChild extends GenericParent<Integer>
并声明我的泛型类型,那么错误就会消失。为什么会这样?
我的问题不是什么是原始类型和泛型类。我在类中定义了具有泛型类型Number的String,我不明白为什么在子类中我不能使用在父类中定义的String列表。