泛型限定
来源:互联网 发布:网络带给我们的坏处 编辑:程序博客网 时间:2024/06/11 10:06
泛型的限定:
? extends 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 GenericDemo7
{
public static void main(String[] args)
{
ArrayList<Person> al = new ArrayList<Person>();
al.add(new Person("p1"));
al.add(new Person("p2"));
al.add(new Person("p3"));
show(al);
ArrayList<Student> al1 = new ArrayList<Student>();
al1.add(new Student("s1"));
al1.add(new Student("s2"));
al1.add(new Student("s3"));
show(al1);
//定义集合要保证左右两边的类型一致。
//两边只有一边定义泛型,也是可以支持,至少新老版本兼容。但是一样会出现,安全提示信息。
}
//传入的集合有一个特点,就是元素类型,要么是Person,要么是Person的子类型。
//这时可以使用泛型的高级应用,泛型的限定。
public static void show(Collection<? extends Person> coll)
{
Iterator<? extends Person> it = coll.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName()); //在泛型方法中,不可以使用具体类型的方法,最多只能使用Object类中方法。
}
}
}
? extends E:接收E类型或者E的子类型。
?super E:接收E类型或者E的父类型。
定义T只能固定一种类型,定义?可以是任意类型。只想操作Person或者Person的子类类型。
使用泛型的限定。? extends 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 GenericDemo7
{
public static void main(String[] args)
{
ArrayList<Person> al = new ArrayList<Person>();
al.add(new Person("p1"));
al.add(new Person("p2"));
al.add(new Person("p3"));
show(al);
ArrayList<Student> al1 = new ArrayList<Student>();
al1.add(new Student("s1"));
al1.add(new Student("s2"));
al1.add(new Student("s3"));
show(al1);
//定义集合要保证左右两边的类型一致。
//两边只有一边定义泛型,也是可以支持,至少新老版本兼容。但是一样会出现,安全提示信息。
}
//传入的集合有一个特点,就是元素类型,要么是Person,要么是Person的子类型。
//这时可以使用泛型的高级应用,泛型的限定。
public static void show(Collection<? extends Person> coll)
{
Iterator<? extends Person> it = coll.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName()); //在泛型方法中,不可以使用具体类型的方法,最多只能使用Object类中方法。
}
}
}
0 0
- JAVA 泛型限定
- 泛型限定
- 泛型限定
- 泛型限定
- Java 泛型限定
- 泛型限定示例
- 泛型限定
- 黑马程序-泛型高级应用-向上限定-向下限定
- 泛型类型限定和通配符类型限定
- java 泛型类型限定
- 集合框架(泛型限定)
- 泛型限定<? extends Object>
- Java 泛型的限定
- 通配符,泛型的限定
- Java 泛型的限定
- Java泛型之泛型限定
- 泛型 定义在类上 、方法上、静态方法上 <?> 泛型限定 上限限定 下限限定
- java 泛型限定(上限)
- hihocoder #1099 枚举
- oracle参数open_cursors和session_cached_cursor详解!
- Java读取xml文件的四种方法
- ASP.NET多文件上传实例
- Qt从零开始制作串口调试助手-(第四章、新建“串口配置界面”和“关于界面”)-Creator_Ly
- 泛型限定
- 二叉树0607
- hdu 4689 Derangement(dp)
- OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)
- 排序算法之冒泡排序
- C++设计模式[九]外观模式
- hdu 4691 Front compression(后缀数组)
- Java内存与垃圾回收
- 杭电ACM1114(完全背包)