JAVA 泛型与反射



泛型实质上就是程序员定义安全的类型   

泛型的语法:     类名 <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来表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值