Java为什么要引入泛型?

未引入泛型之前
public class ArrayList {
	private Object[] elementData;
	
	public Object get(int i) {...}
	public void add(Object o) {...}
}

这种方法有两个问题:

  1. 当获取一个值时必须进行强制类型转换
ArrayList files = new ArrayList();
...
String filename = (String) files.get(0);

2, 没有错误检查,可以向数组列表中添加任何类的对象

files.add(new File("...")); //

对于这个调用,编译和运行都不会出错
在其他地方,如果将get的结果强制类型转换为String类型,就会产生一个错误
引入泛型后

首先,虚拟机没有泛型类型的对象—所有对象都属于普通类。
无论何是定义一个泛型类型,都自动提供一个相应的原始类型 。原始类型的名字就是删去类型参数后的泛型类型名。擦除类型变量,并替换为限定类型(无限定类型的变量使用Object)。

好处

Java中引入泛型最主要的目的是

  • 将类型检查工作提前到编译时期
  • 将类型强转(cast)工作交给编译器
  • ,从而让你在编译时期就获得类型转换异常以及去掉源码中的类型强转代码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值