Java 泛型,大家都不知道的用法

前言

        Java 泛型中的通配符 T,E,K,V,? 是什么?有什么用?看过源代码的都看过,那时候对泛型什么的其实有些迷迷糊糊的,学的不这么样,是在做项目的过程中,渐渐有又看到别人的代码,之后就专门去了解学习,才对这几个通配符 T,E,K,V,? 等有所了解。

泛型有什么用?


        Java泛型是JDK5中引入的一个新特性,泛型提供了编译是类型安全检测机制,这个机制允许开发者在编译是检测非法类型。泛型的本质就是参数化类型,就是在编译时对输入的参数指定一个数据类型。

  1. 类型安全:编译是检查类型是否匹配,避免了ClassCastexception的发生。

// 非泛型写法(存在类型转换风险)

List list1 = new ArrayList();

list1.add("a");

Integer num = (Long) list1.get(0); // 运行时抛出 ClassCastException

// 泛型写法(编译时检查类型)

List<String> list2 = new ArrayList<>();

// list.add(1); // 编译报错

list2.add("a");

String str = list2.get(0); // 无需强制转换

  1. 消除代码强制类型转换:减少了一些类型转换操作。

// 非泛型写法

Map map1 = new HashMap();

map1.put("user", new User());

User user1 = (User) map1.get("user");

// 泛型写法

Map<String, User> map2 = new HashMap<>();

map2.put("user", new User());

// 自动转换

User user2 = map2.get("user");

3.代码复用:可以支持多种数据类型,不要重复编写代码࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值