泛型基本定义

泛型可以在编译时检测出程序的安全隐患,使用泛型技术可以使程序更加健壮,利用泛型可以解决ClassCastException问题

 

范例:在类定义上使用泛型
class Point<T> { 								// 坐标点,T属于类型标记,可以设置多个标记
	private T x;								// 保存x坐标
	private T y;								// 保存y坐标
	public void setX(T x) {					// 设置x坐标,类型由实例化对象决定
		this.x = x;
	}
	public void setY(T y) {					// 设置y坐标,类型由实例化对象决定
		this.y = y;
	}
	public T getX() {						// 获取x坐标,类型由实例化对象决定
		return this.x;
	}
	public T getY() {						// 获取y坐标,类型由实例化对象决定
		return this.y;
	}
}
public class JavaDemo {
	public static void main(String args[]) {
		// 实例化Point类对象,设置泛型标记“T”的目标数据类型,属性、方法参数、返回值的类型动态配置
		Point<Integer> point = new Point<Integer>() ;
		// 第一步:根据需求进行内容的设置,所有数据都通过Object接收
		point.setX(10) ;						// 自动装箱,必须是整数
		point.setY(20) ;						// 自动装箱,必须是整数
		// 第二步:从里面获取数据,由于返回的是Object类型,所以必须进行强制性的向下转型
		int x = point.getX() ;				// 【避免强制转型】获取x坐标原始内容
		int y = point.getY() ;				// 【避免强制转型】获取y坐标原始内容
		System.out.println("x坐标:" + x + "、y坐标:" + y) ;
	}
}
范例:观察默认类型
public class JavaDemo {
	public static void main(String args[]) {
		// 实例化Point类对象,没有设置泛型类型,编译时将出现警告,默认使用Object类型
		Point point = new Point() ;
		// 第一步:根据需求进行内容的设置,所有数据都通过Object接收
		point.setX(10) ;						// 自动装箱,必须是整数
		point.setY(20) ;						// 自动装箱,必须是整数
		// 第二步:从里面获取数据,由于返回的是Object类型,所以必须进行强制性的向下转型
		int x = (Integer) point.getX() ;		// Object强制转型为Integer后自动拆箱
		int y = (Integer) point.getY() ;		// Object强制转型为Integer后自动拆箱
		System.out.println("x坐标:" + x + "、y坐标:" + y) ;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值