一直没搞懂泛型怎么实现
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
泛型就是一种语法糖,只在你写代码的时候方便编辑器纠错。
举个例子,
List<Integer> list = new ArrayList<>(); //list.add("String"); //ERRORlist.add(10); System.out.println(list.get(0));
上边被注释掉的就是错误的示例,编辑器会提醒你纠正错误。
在经过java编译器编译成字节码后会自动去除掉泛型,同时在get方法前会强制转换为原先的类型。
如何证明以上说法?
public class Test{ public void change(List<Integer> list){} public void change(List<String> list){} }
上边这个代码就会被编译器报错,原因是List参数经过编译后类型都会被擦除,所以这两个方法的特征签名一模一样。
添加回答
举报
0/150
提交
取消