类型通配符<?>
package com.atlin.generic;
import java.util.ArrayList;
import java.util.List;
/**
* program@: day15_CollSet
* description@:
* 类型通配符:<?>
* List<?>:表示元素类型未知的List,它的元素可以匹配任何的类型
* 这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中
*
* 类型通配符上限:<? extends 类型>
* List<? extends Number>:它表示的类型是Number或者其子类型
*
* 类型通配符下限:<? super 类型>
* List<? super Number>:它表示的类型是Number或者其父类型
* create@: 2020-10-12 12:08* @author: lin's
*/
public class GenericDemo {
public static void main(String[] args) {
//类型通配符<?>
List<?> list1 = new ArrayList<Object>();
List<?> list2 = new ArrayList<Number>();
List<?> list3 = new ArrayList<String>();
List<?> list4 = new ArrayList<Integer>();
System.out.println("----------------");
//类型通配符的上限<? extends 类型>
// List<? extends Number> list5 = new ArrayList<Object>();//上限是Number
List<?extends Number> list6 = new ArrayList<Integer>();
//类型通配符的下限<? super 类型>
// List<? super Number> list7 =new ArrayList<Integer>();
List<? super Integer> list7 = new ArrayList<Integer>();
}
}