泛型及其应用

什么是泛型

  对象建立时不指定类中属性的具体类型,而由外部在声明及实例化对象时指定具体类型;

为什么使用泛型

  Object类是一切数据类型的父类,可以接收任何类型的数据,都会发生向上转型操作。

class Point{
	private Object x ;		// 表示X坐标
	private Object y ;		// 表示Y坐标
	public void setX(Object x){
		this.x = x ;
	}
	public void setY(Object y){
		this.y = y ;
	}
	public Object getX(){
		return this.x ;
	}
	public Object getY(){
		return this.y ;
	}
};

public class GenericsDemo04{
	public static void main(String args[]){
		Point p = new Point() ;	// 声明一个Point的对象
		p.setX(10) ;			// 利用自动装箱操作:int --> Integer --> Object
		p.setY("北纬210度") ;		// String --> Object
		int x = (Integer)p.getX() ;	// 取出数据先变为Integer,之后自动拆箱
		int y = (Integer)p.getY() ;	// 取出数据先变为Integer,之后自动拆箱
		System.out.println("整数表示,X坐标为:" + x) ;
		System.out.println("整数表示,Y坐标为:" + y) ;
	}
};

  代码中x,会自动发生装箱操作,并向上转型为Object类型,同理y也是。但是在拆箱的时候,y出现类型转换错误。

  一方面拆箱装箱消耗性能。另一方面它不会再编译时出错,而是在运行时,因此不安全。


泛型的应用

  解决数据类型的安全性问题。在类声明时通过一个标识表示类中某个属性的类型或者某个方法的返回值及参数类型。在实例化时指定具体类型即可。

  它会将类型错误发现在编译时。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值