脚本宝典收集整理的这篇文章主要介绍了集合(9):泛型高级(通配符),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
(1)泛型通配符<?> 任意类型,如果没有明确,那么就是Object以及任意的Java类了 (2)<? extends E> 向下限定,E及其子类 (3)<? suPEr E> 向上限定,E及其父类
@H_126_5@//定义一个父类 public class Animal { } //定义一个子类继承父类 class Dog extends Animal { } //定义一个子类继承父类 class Cat extends Animal { }
public class GenericDemo2 { public static void main(String[] args) { //前面我们学到,当泛型里面的类型只用一个,并且明确数据类型的时候,前后必须要写一致 ArrayList<Animal> list1 = new ArrayList<Animal>(); ArrayList<Dog> list2 = new ArrayList<Dog>(); ArrayList<Object> list3 = new ArrayList<Object>(); //泛型通配符<?> //任意类型,如果没有明确,那么就是Object以及任意的Java类了 //左边使用泛型通配符<?>,表示占个位置,但不知道具体类型,右边可以是任意类型 ArrayList<?> objects1 = new ArrayList<Animal>(); ArrayList<?> objects2 = new ArrayList<Dog>(); ArrayList<?> objects3 = new ArrayList<Object>(); //<? extends E> 向下限定,E及其子类(extends表示继承) //左边使用<? extends E> ,右边只能是E类或者E的子类 ArrayList<? extends Animal> list4 = new ArrayList<Animal>(); ArrayList<? extends Animal> list5 = new ArrayList<Dog>(); ArrayList<? extends Animal> list6 = new ArrayList<Cat>(); //ArrayList<? extends Animal> list7 = new ArrayList<Object>(); //右边若使用E的父类,就会报错 //<? super E> 向上限定,E及其父类 //左边使用<? super E>,右边只能是E类或者E的父类 ArrayList<? super Animal> list7 = new ArrayList<Animal>(); ArrayList<? super Animal> list8 = new ArrayList<Object>(); //ArrayList<? super Animal> list9 = new ArrayList<Dog>(); //右边若使用E的子类,就会报错 } }
脚本宝典总结
以上是脚本宝典为你收集整理的集合(9):泛型高级(通配符)全部内容,希望文章能够帮你解决集合(9):泛型高级(通配符)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。