java在1.5之后引入泛型,为了什么?
一:泛型只在编译时起作用,运行时会彻底擦除。
二:因为泛型会在运行时被彻底擦除,所以不会影响程序的运行效率
三:泛型的出现,使的程序中存在的类型不同的安全隐患问题可以得到很好的解决,而且也为程序免去了强制转换类型的多余步骤以及可能出现的运行时强制类型转换错误。
例如:
List list= new ArrayList();
list.add(1);
list.add(12);
list.add("str");
int i = (int) list.get(2);
像这种代码,非常的不安全,在运行的时候可能出现各种各样的错误,而且还需要强制类型转换,看着非常繁琐。
List<Integer> list= new ArrayList<Integer>();
list.add(1);
list.add(12);
list.add("str");
int i = list.get(2);
加上泛型之后就不出有这样的问题,因为像list.add("str")这样的操作,将不会通过编译,而且取值也不需要进行强制类型转换,代码既安全又优雅。