Java泛型的应用与优点

需积分: 9 0 下载量 76 浏览量 更新于2024-09-12 收藏 227KB DOCX 举报
Java泛型的应用 Java泛型是Java 5中引入的一种机制,用于限制集合的处理类型,提高程序的可读性和稳定性。泛型的主要作用是限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。 在JDK 5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题。例如: ```java ArrayList list = new ArrayList(); list.add("abc"); Integer num = (Integer) list.get(0); // 运行时会出错,但编码时发现不了 list.add(new Random()); list.add(new ArrayList()); for (int i = 0; i < list.size(); i++) { (?) list.get(i); // 此处取出来的对象应转换成什么类型 } ``` 而使用泛型,可以在编写集合代码时,就限制集合的处理类型,从而把原来程序运行时可能发生问题,转变为编译时的问题,以此提高程序的可读性和稳定性。 泛型的基本术语,以ArrayList<E>为例:<E>念着类型参数变量,ArrayList<Integer>中的Integer称为实际类型参数,整个称为ArrayList<E>泛型类型,整个ArrayList<Integer>称为参数化的类型ParameterizedType。 泛型的应用非常广泛,例如: 1. 使用迭代器迭代泛形集合中的元素。 ```java @Test public void test2() { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); Iterator<Integer> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } ``` 2. 使用增强for循环迭代泛形集合中的元素。 3. 存取HashMap中的元素。 需要注意的是,泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的Java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除”。 Java泛型是一种非常有用的机制,它可以提高程序的可读性和稳定性,减少程序中的错误和安全性问题。