Java泛型

泛型是什么?

泛型就像是java中的类一样,是一种模板。可以在使用时 指定具体的类型,比较灵活。

为什么需要泛型?

比如容器类,List<T>,可以存储不同类型的对象。使用时比较方便。

但是,编译后的.class文件,不会保存泛型,而是List<Object>,这是类型擦除。

什么意思呢?

即 如果定义了 List<String> ,或者 List<Map>,

编译时 会 做一个 类型转换 (String) Object,(Map)Object

可以理解为一种语法糖,对于开发人员来说,比较方便的一种语法,但是实际上 编译后的文件是不存在泛型的,都是Object 然后做了强制类型转换。

比如 List<String> ,或者 List<Map> 的Class 对象 都是一样的。

那么,怎么获取 泛型类的 具体类型呢?

类型擦除,获取不到具体类型的。但是可以获取到边界类型。

原始类型 (Raw Types):未指定泛型参数的泛型类或接口。
参数化类型 (Parameterized Types):指定了具体泛型参数的类或接口。
数组类型 (Array Types):表示数组的类型,如 int[] 或 String[]。
类型变量 (Type Variables):用于泛型声明中的占位符,如 T 或 E。
基本类型 (Primitive Types):Java 中的基本数据类型,如 int、boolean 等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值