JDK1.5版本以后出现的新特性,用于解决安全问题是一个安全机制。
格式:集合类< 类型> 变量 = new 集合类< 类型>();
例子:ArrayList<String> al = new ArrayList<String>();
好处
将运行时期出现的问题ClassCastException,转移到了编译时期,方便于程序员解决问题。
避免了强制转换的麻烦。
泛型类:当类中要操作的引用数据类型不确定时需要定义泛型类。
举例:
class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
this.q = q;
}
public QQ getObject()
{
return q;
}
}
泛型同样也可以定义在接口上:interface Inter<T>{............}
泛型方法:
泛型类定义的泛型在整个类中有效,如果被方法使用,那么泛型类的对象明确要操作的具体类型后,所有要操作的类型都将会固定。为了让不同方法可以操作不同类型,而且类型还不确定,那么可以将泛型定义在方法上。
举例:
class Demo
{
public <T> void show(T t) / /这个T只在此方法中有效
{
System.out.println("show:"+t);
}
public <T> void print(T t) //这个T与上方法中的T无关,只在本方法中有效
{
System.out.println("print:"+t);
}
public static <W> void out(W w); //注意:静态方法是不能访问类上定义的泛型,所以静态方法只能在自己的方法上定义使用泛型。
{
System.out.println("print:"+w);
}
}
泛型限定:
?通配符,也可以理解为占位符。
上限:<? extends E> (可以接收E类型或者E的子类型)
下限:<? super E> (可以接收E类型或者E的父类型)
不知我总结的行不行,能不能给点分哈。。。。。。。 |