package com.inmind.generic_advance06; import java.util.ArrayList; /* 13.泛型通配符的使用(了解) 当我们想接收一个数据类型,它们的泛型不一致,但是方法中的操作是一致的时候,如果操作???? 泛型通配符:?,它的作用是能够匹配任意的泛型类型 */ public class Demo07 { public static void main(String[] args) { //创建3个人 Person p1 = new Person("张三", 18); Person p2 = new Person("李四", 19); Person p3 = new Person("王五", 20); ArrayList pLists = new ArrayList<>(); pLists.add(p1); pLists.add(p2); pLists.add(p3); //把集合中的对象,使用foreach遍历打印打印输出,本质是迭代器 /*for (Person p : pLists) { System.out.println(p);//将p的toString的方法返回值,打印出来 }*/ // showPerson(pLists); show(pLists); //创建3个学生 ArrayList sLists = new ArrayList<>(); sLists.add(new Student("刘备", 17)); sLists.add(new Student("关羽", 16)); sLists.add(new Student("张飞", 15)); /*for (Student s : sLists) { System.out.println(s); }*/ show(sLists); } //注意:ArrayList参数类型时,泛型是没有多态!!!! public static void show(ArrayList list){ for (Object o : list) { System.out.println(o); } } /* public static void showPerson(ArrayList list){ for (Person person : list) { System.out.println(person); } } public static void showStudent(ArrayList list){ for (Student s : list) { System.out.println(s); } }*/ }