问题描述
- 关于泛型实例声明类型的问题,问题在注释里面
- class Employee{
}
class Manager extends Employee{
}
class CEO extends Manager{}
public class Test{
public static void main(String[] args) {
List<? super Manager> list=new ArrayList();
//请问,new ArrayList()中,这里面的Manager有什么用吗?
list.add(new Manager());
list.add(new CEO());
}
}
解决方案
限制list的泛型参数必须是manager或者它的派生类。
解决方案二:
希望各位能回答小弟这个问题,感激不尽!!!
解决方案三:
<? super T> 表示以T类型为下限的某种类
实例化的时候对象的泛型一定要大于等于T类型(也就是T的父类或自己) ;
使用的时候类型一定要小于等于T类型(也就是T的子类或自己)
list.add(new Manager()); //操做成功
list.add(new CEO()); //成功
list.add(new Employee()); //编译器报错,因为Employee是Manager的父类
时间: 2024-10-23 23:23:28