什么是泛型,泛型有什么优点,以及泛型擦除,下面我们一一解答
1.什么是泛型:即参数化类型。比如 List <String>
.
2.泛型优点:
①安全简单。在编译时检查类型安全,(类型安全检查是保证类型的转换时可以正确转换的)。如List<String>
这里只能放入String类型,体现出了安全检查。
②增加复用性。解决方法重载问题,public void write(Integer a,Integer[]b)
与public void write(Double a,Double[]b)
的泛型为public <T> void write (T a,T[] b)
.
3.泛型擦除:Java编译器生成的字节码是不包含泛型信息的,泛型信息将在编译时被擦除,这个过程叫类型除。也即将泛型java代码转换为java字节码。
ps:List<String>
不能转换为List<Object>
,因为泛型没有继承,只是提供限定功能。