黑马程序员技术交流社区
标题:
泛型的使用(一)需求请看注释
[打印本页]
作者:
anyway1919
时间:
2015-9-10 23:47
标题:
泛型的使用(一)需求请看注释
package com.review.demo2;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/**
* 案例:向不同的集合中,只能存储Student和Worker
*
*/
public class ConstraintTypeDemo7 {
public static void main(String[] args) {
// 创建一个List集合,存放Dog
List<Dog>list1 = new ArrayList<>();
//创建一个Set集合,存放Cat
Set<Cat> set = new HashSet<>();
//存储相同了类型的元素
list1.add(new Dog("kitty",2));
list1.add(new Dog("jimmy",1));
list1.add(new Dog("jone",3));
list1.add(new Dog("lasha",5));
printCollection(list1);
System.out.println("-------------------------------------------------------------");
set.add(new Cat("mouse",2));
set.add(new Cat("cat",1));
set.add(new Cat("cat2",3));
printCollection(set);
List<String>list2 = new ArrayList<>();
list2.add("字符串");
list2.add("字符串2");
// printCollection(list2); 此处编译失败
}
/*创建一个输出集合的功能 需求:只能输出打印Dog或者Cat???
* 当添加通配符的限定后,上面的printCollection(list2)会编译失败
* 因为:通配符限定list集合中的元素只能是Animal以及其子类
*
* */
public static void printCollection(Collection <?extends Animal>coll){
//way1遍历
/*for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}*/
//way2遍历
for (Iterator <?>it = coll.iterator();it.hasNext();) {
Object obj = it.next();
System.out.println(obj);
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2