java中的泛型

泛型

指定参数化类型

泛型的类型擦除

泛型只在编译阶段有效,泛型类型在逻辑上可看成是多个不同的类型,但是其实质都是同一个数据类型。
编译之后程序会采取去泛型化的措施。

泛型通配符

无边界通配符
<?>
上边界通配符
<? extends XXX>必须是XXX及其子类
下边界通配符
<? super XXX>必须是XXX及其父类

泛型的使用

泛型跟我们的成员属性一样,必须先声明在使用,泛型的声明采用 <> 进行声明。
声明泛型一般约定采用单个大写字母表示,常用的有 K E T V 等。
使用泛型可以增加代码的灵活度。

泛型类

在类中使用泛型

public class Person<T> {
	private T cal;
	public Person(T cal){
		this.cal =cal;
	}
}
Person<String> p = new Person("str");
Person<Integer> p = new Person(7);
泛型方法
实体方法
   实体方法可以使用在类中定义的泛型或者方法中定义的泛型。
public class Person<T> {
	private T cal;
	//使用类型定义的泛型
	public Person(T cal){
		this.cal =cal;
	}
	//使用方法中定义的泛型
	public <K> K mothod1(E e,V v){
		return K;
	}
}
静态方法
   不可以使用在类中定义的泛型,只能使用在静态方法上定义的泛型。
public static <K> K mothod1(E e,V v){
	return null;
}
泛型接口

在接口的定义时进行泛型的声明。
接口是标准的指定者,指实现该接口的类必须实现其标准定义(即抽象方法)。所以在接口上进行泛型的申明,或者说使用泛型接口,可以让我们的程序代码更加简洁,更加多变.

public interfice CalGeneric<T>{
	T add(T a,T b) ;
}
public class CalIntegerGeneric implements CalGeneric<Integer>{
	@Override
	public Integer add(Integer a,Integer b){
		return null;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值