泛型实质上就是程序员定义安全的类型
泛型的语法: 类名 <T>
之前java也提供了对object类的引用"任意化操作",这种任意化操作对Object引用进行向下转型及向上转型操作,但一些类型转换的错误也许不会被编译器捕捉,而在运行后出现异常,可见强制类型转换存在安全隐患,所以提供了泛型安全机制。
未使用泛型的:
package FanXing;
public class Test {
private Object b;
public Object getB(){
return b;
}
public void setB(Object b){
this.b = b;
}
public static void main(String[] args) {
Test t = new Test();
t.setB(new Boolean(true));//向上转型操作
System.out.println(t.getB());
t.setB(new Float(12.3));
Float f = (Float)(t.getB());//向下转型操作
System.out.println(f);
}
}
使用泛型的:
package FanXing;
public class OverClass<T> {//定义泛型类
private T over;//定义泛型成员变量
public T getOver(){
return over;
}
public void setOver(T over){
this.over = over;
}
public static void main(String[] args) {
//实例化一个Boolean型的对象
OverClass<Boolean> over1 = new OverClass<Boolean>();
//实例化一个Boolean型 的对象
OverClass<Float> over2 = new OverClass<Float>();
over1.setOver(true);//不需要进行类型转换
over2.setOver(12.3f);//不需要进行类型转换
Boolean b = over1.getOver();
Float f = over2.getOver();
System.out.println(b);
System.out.println(f);
}
}
定义泛型类时,一般类型名称使用T来表示,而容器的元素则使用E来表示。