public class TestMain {
public static void main(String args[]){
//编译的时候就知道了 下限是 Number
//List<Number自己或Number的父类>
//编译的时候就知道了<? super Number>产生的一定是Number自己或Number的父类
//所以add Number的子类时可以通过,没毛病
List <? super Number> list1 = new ArrayList<Serializable>();
//然后往list添加Number的子类,没毛病 可以通过
list1.add(new Integer(8));
list1.add(new Double(4.5));
//编译的时候只知道上限是Number
//然后List<Number自己或的子类>,问题来了
//编译的时候<? extends Number> 不知道 是具体的哪个子类 有可能Integer也有可能是Double
//所以add的时候编译不通过
List <? extends Number> list2 = new ArrayList<Number>();
list2.add(new Integer(8));//编译不通过
list2.add(new Double(4.5));//编译不通过
}
}
java 泛型边界
最新推荐文章于 2025-03-03 23:42:36 发布