“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。
下面我们简单介绍一下这些新特性。
1.泛型(Generic)
C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
Collection<String> c = new ArrayList(); c.add(new Date()); |
add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date) |
void processAll(Collection c){ for(Iterator i=c.iterator(); i.hasNext();){ MyClass myObject = (MyClass)i.next(); myObject.process(); } } |
void processAll(Collection<MyClass> c){ for (MyClass myObject :c) myObject.process(); } |
int a = 3; Collection c = new ArrayList(); c.add(a);//自动转换成Integer. Integer b = new Integer(2); c.add(b + 2); |
public enum Color { Red, White, Blue } |
for (Color c : Color.values()) System.out.println(c); |
util.write(obj1); util.write(obj1,obj2); util.write(obj1,obj2,obj3); … |
public void write(Object... objs) { for (Object obj: objs) System.out.println(obj); } |
import static java.lang.Math.*; ……. r = sin(PI * 2); //无需再写r = Math.sin(Math.PI); |
来源于:http://blog.csdn.net/liuwei_blog/archive/2008/12/26/3609382.aspx