Java基础 通配符?+泛型限定
2015-06-27 00:44
615 查看
基本应用
package test;import java.util.*;
/*
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
*/
class Test {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
ArrayList<Integer> al1 = new ArrayList<Integer>();
al1.add(4);
al1.add(7);
al1.add(1);
printColl(al);
printColl(al1);
}
public static void printColl(ArrayList<?> al) {
Iterator<?> it = al.iterator();
while (it.hasNext()) {
System.out.println(it.next().toString());
}
System.out.println();
}
}
泛型限定
package test;import java.util.*;
/*
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
*/
class Person {
private String name;
Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Student extends Person {
Student(String name) {
super(name);
}
}
class Test {
public static void main(String[] args) {
ArrayList<Person> al = new ArrayList<Person>();
al.add(new Person("abc1"));
al.add(new Person("abc2"));
al.add(new Person("abc3"));
printColl(al);
ArrayList<Student> al1 = new ArrayList<Student>();
al1.add(new Student("abc--1"));
al1.add(new Student("abc--2"));
al1.add(new Student("abc--3"));
printColl(al1); // ArrayList<? extends Person> al = new
// ArrayList<Student>();error
}
public static void printColl(Collection<? extends Person> al) {
Iterator<? extends Person> it = al.iterator();
while (it.hasNext()) {
System.out.println(it.next().getName());
}
System.out.println();
}
}
相关文章推荐
- Spring4.0给我们带来什么?
- Struts2开发环境搭建,及一个简单登录功能实例
- java视频教程与文档教程
- Spring quartz定时器动态多任务实现
- Quartz结合SPRING多任务定时调用
- mac电脑,eclipse设置jdk_home
- Java Synchronized()
- java学习之旅26--api文档_package的概念_生成自己项目的api文档
- 10个精妙的Java编码最佳实践
- 10种简单的Java性能优化
- MyEclipse中SVN的使用方法
- 最新版本的Struts2+Spring4+Hibernate4三大框架整合(截止2014-10-15)
- 更好的Java
- java并发编程之CountDownLatch
- java基础入门
- JavaWeb综合案例-键盘模拟
- 解决myeclipse导入json文件报错
- JAVA calender 的使用实现查询一个月的第1天和最后一天,学的是技巧。
- spring MVC 中获取request
- Java web中上传文件的重命名