java 泛型详解

一、什么是泛型

我们常用的List<String>a=new ArrayList<String>();中的String就是泛型

二、泛型的作用

程序报错包括两种:

  1. 编译时出错
  2. 运行时出错

当一个Object类是非数字字符串时,强制类型转化为integer就会运行出错,使得程序员无法在编译时发现错误,导致这些错误可能在没有被发现时该程序就投入应用。
泛型使得编译器能够识别具体的类

三、定义泛型类

和使用一样,用<>来定义泛型类

public class Test<T>{
	private T content;
	public Test(T content){
		this.content=content;
	}
	public  T get(){
		return this.content;
	}
}

T在运行时可以是Object也可以是String,Integer等类型,使用方法如下:

Test<String>test=new Test<String>();

此时test实例中的content就被指定为String类型,并且编译器可识别,诸如:

Integer a=test.get();

就会被编译器识别报错。

四、用extend限定类型参数

public class Test<T extends Number>{
	private T content;
	public Test(T content){
		this.content=content;
	}
	public  T get(){
		return this.content;
	}
}

T extends Number就表示T泛型必须是Number的子类,不然编译器就会报错。

五、泛型数组

不能用泛型来定义数组

public class Test<T>{
	private T[] content=new T[10];//出错,不能用泛型定义数组
	public Test(T content){
		this.content=content;
	}
	public  T get(){
		return this.content;
	}
}

只能通过客户类来指定泛型的具体类型然后创建实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值