黑马程序员技术交流社区
标题:
泛型的问题
[打印本页]
作者:
进击的蜗牛
时间:
2015-7-5 18:56
标题:
泛型的问题
public class GenericDemo6 {
/**
* ? 是通配符。也可以理解为占位符。
泛型的限定:
? extends E:可以接收E类型或者E的子类型。上限。
? super E:可以接收E类型或者E的父类型。下限。
*/
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<Student1> al1 = new ArrayList<Student1>();
al1.add(new Student1("abc--1"));
al1.add(new Student1("abc--2"));
al1.add(new Student1("abc--3"));
printColl(al1);
/ /这个地方是错的吗 ?是等于这个吧
ArrayList<Person> al = new ArrayList<Student>();?
为什么运行出来了呢?
还有把输出的哈希值,变成输出字符串
}
public static void printColl(ArrayList<?extends Person> al)
{
Iterator<?extends Person> it = al.iterator();
while(it.hasNext())
{
Person p = (Person)it.next();
System.out.println(p);
}
}
}
class Person
{
private String name;
Person(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
class Student1 extends Person
{
Student1(String name)
{
super(name);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2