1.Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
2.泛型这种语法机制只是在编译阶段给编译器参考的,运行阶段泛型没用
3.泛型在集合中的好处:
使集合中存储的元素类型统一了,从集合中取出的元素类型都是泛型指定的类型,不需要进行大量的向下转型
4.泛型的缺点:
限制了集合中元素的种类
5.泛型在集合中的应用举例
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class GenericTest01 { public static void main(String[] args) {// 以下集合指定了只能存String类型 List list1 = new ArrayList();//jdk8以前的写法 List list2 = new ArrayList<>();//钻石表达式,jdk8新特性 list2.add("http://www.baidu.com"); list2.add("http://www.google.com"); list2.add("http://www.bing.com"); Iterator it = list2.iterator(); while(it.hasNext()) { String s = it.next(); String newString = s.substring(7); System.out.println(newString); } }}
6.自定义泛型
public class GenericTest02 { public static void main(String[] args) { Test t = new Test<>();// t.display(10);类型不匹配 t.display("hello");// 不用泛型就是Object类型 Test t1 = new Test(); t1.display(new Object()); }}class Test { public T doSome(T t) { return t; } public void display(T t) { System.out.println(t); }}