泛型

泛型

  • 编译时类型安全检测机制
  • 该机制允许程序员在编译时检测到非法的类型
  • 本质:参数类型–>所操作的数据类型被指定为一个参数泛型
  • 不存在于JVM虚拟机
    虚拟机在运行期进行检测,如果有异常,就会报异常CastNotException,而泛型将类型检测提前到了编译期
作用:
  • 增强编译时错误检测,减少因类型问题引发的运行时异常
  • 泛型具有更强的类型检测
  • 避免类型转换
  • 泛型算法,增加代码复用性

类、接口、方法

//类
public class Student<T>{
	private T t;
}
//方法
public <T> void test(T t){
		
}
//接口
interface generics<T>{
}

//泛型类/接口的继承
class Generic2<T> implements generics<T>{

}
class Generics3 implements generics<String>{
	//有具体类型前面就不用<T>
}

常用变量名
E:元素
K:键
N:数字
T:类型
V:值
S,U,V等:第二第三第四个类型
缺少实际类型变量的的泛型就是一个原始类型

class P<T>{}
P p = new P() // --->原始类型

限制机制,不限制的话都继承自Object不能用特定的方法
通配符“?”
受上下限控制的通配符
通配符匹配
适用范围:

  • 参数类型
  • 字段类型
  • 局部变量类型
  • 返回值类型(一般不用)

PESC原则:

Producer extends生产者,只能从集合中获取元素

<? extends T>

Consumer super 消费者原则,只能从集合中添加元素

<? super T>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值