package day02collection.Genericcalss;
/*
泛型的通配符:
?:代表任意的数据类型
使用方式:
不能创建对象使用
只能作为方法的参数使用
*/
import java.util.ArrayList;
import java.util.Iterator;
public class GenericWildcard {
public static void main(String[] args) {
ArrayList<String> list1= new ArrayList();
list1.add("superqiang777");
list1.add("123456");
ArrayList<Integer> list2 = new ArrayList();
list2.add(1234456);
list2.add(654123);
//使用泛型通配符?实现将集合内的元素全部打印出来
printList1(list1);
printList1(list2);
printList2(list1);
printList2(list2);
}
public static void printList1(ArrayList<?> list){
System.out.println(list);
//直接输出的是集合内的元素(说明重写了toString方法)
}
/*
定义一个方法,能遍历所有类型的ArrayList集合
这时候我们不知道ArrayList集合使用什么数据类型,可以泛型的通配符?来接收数据类型
注意:
泛型没有继承概念的
*/
public static void printList2(ArrayList<?> list){
Iterator<?> it = list.iterator();
while (it.hasNext()){
System.out.println(it.next());//注意it.next()是Object类型的数据
}
}
}
Java-泛型通配符?的一般应用场景
最新推荐文章于 2024-01-07 17:45:00 发布