Files
javaSE-0113/javaSE-day02/src/com/inmind/generic_advance06/Demo07.java

59 lines
1.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<Person> 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<Student> 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<Object>参数类型时,泛型是没有多态!!!!
public static void show(ArrayList<?> list){
for (Object o : list) {
System.out.println(o);
}
}
/* public static void showPerson(ArrayList<Person> list){
for (Person person : list) {
System.out.println(person);
}
}
public static void showStudent(ArrayList<Student> list){
for (Student s : list) {
System.out.println(s);
}
}*/
}