首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java基础 - 泛型之泛型参数

2013-02-24 
Java基础 -- 泛型之泛型参数泛型机制常用的参数有3个:“?”代表任意类型。如果只指定了?,而没有extends,则

Java基础 -- 泛型之泛型参数

泛型机制常用的参数有3个:

“?”代表任意类型。如果只指定了<?>,而没有extends,则默认是允许任意类。

extends关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或者是此类型的子类。

super关键字声明了类型的下界,表示参数化的类型可能是所指定的类型,或者是此类型的父类型,直至Object

前提

Fruit是Apple和Orange的超类。

本章通过java代码逐一分析泛型参数的意义和区别

extends参数

public void testWideCardType(){/** * ? 可以看做 ? extends Object 的简化版 */List<?> list = new ArrayList<Fruit>();List<?> list2 = new ArrayList<Apple>();List<?> list3 = new ArrayList<Object>();wideCardType(list,new Fruit());}

List<? super Object> 可以引用  List<任何类型>,而Object是所有的对象的祖先,此list只能添加Object类型对象。

extends和super意义记忆的技巧

? extends A: ?继承A,?是A的子类,或者?是A本身
? super B:    ?是B的父类,或者?是B本身

参考文献:

http://baike.baidu.com/view/1436058.htm

http://fyting.iteye.com/blog/122732


热点排行