泛型是JavaSE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,用在类、接口和方法的创建中。在没有泛型的情况下,通过对类型Oject的引用来实现参数的”任意化”,“任意化”的缺点是要做显式的强制类型转换。
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单的类型
2、同一种泛型可以对应多个版本,因为参数类型是不确定的,不同版本的泛型类实例是不兼容的
3、泛型的类型参数可以有多个
4、泛型的参数类型可以使用extends语句,例如<T extends superclass>,习惯上称为“有界类型”
5、泛型的参数类型还可以是通配符类型。例如:Class<?>class Type = Class.forName(“java.lang.String”)
?:是通配符,代表任意类型
代码:
package cn.kgc.iterator;import java.util.ArrayList;
import java.util.List;
import cn.kgc.LinkedList.News;
/**
*
* @author vip宅男
*
*/
public class Ch06 {
/**
* 应储存相同类型的数据
*
* 使用泛型:
*
* 1.约束的数据储存的类型
* 2.使用get方法得到的数据类型是确定的
* 泛型的语法:
* <Object>必须引用数据类型 如果存储基本数据类型 就要转成相应的包装类
*/
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
int a=list.get(0);
List<News> list2=new ArrayList<News>();
list2.add(new News("1", "标题1"));
News news =list2.get(0);
System.out.println(a);
System.out.println("*******************");
System.out.println(news);
}
}