1. 可以再编译是检查存储的数据是否正确。
我们开发有一个趋向就是尽早的发现错误, 对java来说, 最好就是再编译阶段, 泛型正好符合这一条件, 如再testGeneric中, strList.add() 如果加入一个非String类型的类或者其子类的话, 那么编译就会出现错误。
2. 减少了强制转换,
String test1 = (String)strList.get(0);这样的操作属于一种向下转型, 是比较危险的操作, 当List内存储的对象不适String时就会发生错误。
例子:
JDK 5.0 以后加入了泛型的概念。我们可以看一下简单的例子:
public class GenericExample {
public void testOrign() {
List strList = new ArrayList();
strList.add("test1");
String test1 = (String)strList.get(0);
System.out.println("Test 1 : " + test1);
}
public void testGeneric() {
List<String> strList = new ArrayList<String>();
strList.add("test1");
String test1 = strList.get(0);
System.out.println("Test 1 : " + test1);
}
}