java语言基础(70)——集合框架(泛型高级之通配符)
泛型通配符
<?>
任意类型
? extends E
向下限定,E及其子类
? super E
向上限定,E及其父类
使用方法:
package FanXingDemo;
import java.util.ArrayList;
import java.util.Collection;
class FanXingDemo{
public static void main(String[] args){
// 如果明确了类型 那么前后须类型一致
Collection<Object> c = new ArrayList<Object>();
// 以下用法报错
//Collection<Object> c1 = new ArrayList<Animal>();
//Collection<Object> c2 = new ArrayList<Dog>();
//Collection<Object> c3 = new ArrayList<Cat>();
// end
// 泛型通配符 <?> 用法
// <?> 代表任意类型 以下用法都正确
Collection<?> c4 = new ArrayList<Object>();
Collection<?> c5 = new ArrayList<Animal>();
Collection<?> c6 = new ArrayList<Dog>();
Collection<?> c7 = new ArrayList<Cat>();
// end
// 泛型通配符 <? extends E> 用法
// 向下限定 E 和 E 的子类可以
// Collection<? extends Animal> c8 = new ArrayList<Object>();
Collection<? extends Animal> c9 = new ArrayList<Animal>();
Collection<? extends Animal> c10 = new ArrayList<Dog>();
Collection<? extends Animal> c11 = new ArrayList<Cat>();
// 泛型通配符 <? super E> 用法
// 向上限定 E 和 E 的父类可以
Collection<? super Animal> c12 = new ArrayList<Object>();
Collection<? super Animal> c13 = new ArrayList<Animal>();
//Collection<? super Animal> c14 = new ArrayList<Dog>();
//Collection<? super Animal> c15 = new ArrayList<Cat>();
}
}
class Animal{
}
class Dog extends Animal{
}
class Cat extends Animal{
}
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:主机托管适用于什么类型的企业网站 下一篇:CSS篇四