Java泛型的构成
泛型变量起到的作用:(给编译器带来类型检查的信息)
泛型属于Java的语法糖的一种,提高了Java的健壮性和降低了程序的复杂性
泛型的好处:
简单易用
消除强制类型转换
保证类型安全
直接提高了代码的重用率
下面就是一个使用泛型的小例子,简单表现了泛型的优点:
package generic; import java.util.ArrayList; import java.util.List; public class Example { public static void main(String[] args){ String str; List list=new ArrayList(); list.add("1"); System.out.println(list.get(0)); str=(String) list.get(0); System.out.println(str); } } //此处str=(String)list..get(0)必须进行强转,显得麻烦
泛型实现原理:
依靠类型擦除技术:
类型擦除是在编译器完成的,即在编译期会将泛型类型参数擦除成他的限
定类型
【如果没擦除为Object类型之后在强制类型转换为对应的类型】
泛型的使用情况:
泛型类声明 泛型接口声明 泛型方法声明 泛型构造器声明
泛型类和接口:
public interface List<T> extends Colection<T>{
...
}
主要是实现类型安全的写入数据(编译器为我们完成类型检查)
List<String> str=new ArrayList<String>();
实现类型安全的读取数据
String mystring=str.get(0);
遍历
1.Iterator
for(Iterator<String> iter=str.iterator();iter.hasNext();){
String s=iter.next();
System.out.println(s);
}
2.foreach
for(String s:str){
system.out.println(s);
}
自动封装和自动拆装
List<Integer> ints=new ArrayList<Integer>();
ints.add(0);
ints.add(1);
泛型中自动启用拆箱和装箱操作