泛型——通用类型(Generic)
简介:
相当于c++中的模板技术,应用于类型安全检查以及编写java程序(框架)。
语法:
list<泛型类型> =>参数化类型
规定List集合中元素类型,取出集合元素时,获得具体的数据元素类型(不需要进行强制转换)。此外注意:泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上挡住向集合中插入非法数据。但编译器编译完带有泛型的java集合后,生成的class文件中将不再带有泛型信息。以此使程序效率不受影响,这个过程称之为“擦除”。
泛型典型应用:
· 对List的遍历
@Test public void demo1() { Listlist = new ArrayList (); list.add("abc"); list.add("def"); list.add("qwe"); // JDK5之前 两种遍历方式 :通过下标遍历、通过Iterator Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } System.out.println("--------------------------------"); for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) { String string = (String) iterator2.next(); System.out.println(string); } System.out.println("--------------------------------"); // for in 简化 Iterator --- for in 就是 Iterator for (String s : list) { // String s 表示 list中每一个字符串 System.out.println(s); } }
泛型的类型转换:
使用泛型的对象进行类型转换时,两端对象使用的泛型类型必须一致,否则报错。
有关知识:
1、定义泛型方法,必须在方法的返回值之前进行泛型类型声明。
2、在类名后声明类的泛型,该类中所有方法都可以直接使用泛型,但在静态方法中不生效。
3、关于泛型通配符的使用。
4、关于上下边界的应用。
小结:
1、泛型用来在编译阶段对集合对象进行类型安全检查。
2、泛型技术结合反射编写java程序。
3、泛型的通配符和上下边界在API中有很多应用,了解即可。