JDK5.0中新特性介绍:
泛型(Generics);
增强的“for”循环(Enhanced For loop);
自动装箱/自动拆箱(Autoboxing/unboxing);
类型安全的枚举(Type safe enums);
静态导入(Static import);
可变参数(Var args);
泛型是JDK1.5中一个最重要的特性。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。
在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。
public static void main(String[] args){
List list = new ArrayList();
list.add("hello");
list.add(11);
list.add(true);
for(int i=0;i<list.size();i++){
System.out.println((String)list.get(i));
}
}上面的程序在编译的时候可以顺利通过,但在运行的时候则抛出以下异常:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at my.arraylist.ArrayListTest3.main(ArrayListTest3.java:15)
如果异常能提前发现,就好了。编译时的错误修改要比运行时的错误修改简单多了。
泛型就给我们提供了这样一个机制,让上面的错误可以提前出现,即编译时期就暴露出来。
public static void main(String[] args){
List<String> list = new ArrayList<String>();
list.add("hello");
//在编译时以下两行会提示以下错误,无法编译通过
//The method add(int, String) in the type List<String> is not applicable for the arguments (int)
list.add(11);
list.add(true);
for(int i=0;i<list.size();i++){
System.out.println((String)list.get(i));
}
}原文:http://zlfwmm.blog.51cto.com/5892198/1711009