JDK5.0新特性之:其他
一、自动装箱与拆箱
这是一个很体帖的改进。在JDK5.0以前我们常看到下面的代码。
Vector v=new Vector();
v.add(new Integer(1));
因为Vector.add只接受对象,而1不是对象,所以我们还得把整数1装箱到Integer对象里,真麻烦:( 。现在我们可以这样了,是不是方便许多呢?如下:
Vector<Integer> v=new Vector<Integer>(1);
v.add(1);
二、新的for循环
在前面讲枚举的时候已经用到了,再把进面的代码粘贴一次吧,如下:
Color[] colors = Color.values();
for (Color c : colors) {
System.out.println("color value=" + c.getColorValue());
}
注意:不要以为Color[]是数组,就以为for-each循环只适用于数组,对于集合(List、Set)一样可以的,如下:
List<String> list = new ArrayList<String>();
for (String str : list) {
System.out.println(str);
}
三、参数个数的可变性
参数的个数是可变的,如下代码中的test方法就是一个int型的可变参数,当然你可以将参数设成String、Object等。
public class Test {
public static void main(String[] args) {
test();
test(1);
test(2, 3, 4);
}
public static void test(int... ints) {
for (int i : ints) {
System.out.println(i);
}
}
}
四、静态引用
什么是静态引用,先看下面的代码:
package jdk5;
public class Model {
public static void operate() {}
public static String ABC;
}
Model类有一个静态方法operate和一个静态变量(必须是静态的),这是一个很普通的类。而下面的Test类就有些奇怪了:
package jdk5;
import static jdk5.Model.ABC;
import static jdk5.Model.operate;
public class Test {
public static void test() {
operate();
String s = ABC;
}
}
有那些奇怪的地方呢?
(1)import 后面多了一个static
(2)jdk5.Model后面多写了方法operate和变量ABC
有了上面奇怪的写法之后,以后在Test类中要使用import static的方法、变量就可以象本地方法和变量一样用了。
五、C风格格式化输出
以前我们在这里写代码:
public static void main(String[] args) {
int x = 10;
int y = 20;
int sum = x + y;
System.out.printf(x + " + " + y + " = " + sum);
}
在JDK5.0后,我们这样写代码:
public static void main(String[] args) {
int x = 10;
int y = 20;
int sum = x + y;
System.out.printf("%d + %d = %d", x, y, sum);
}
两段代码的效果都是一样的“10 + 20 = 30”,但第二种C风格的写法显示方便易读多了。
六、元数据(注解)
这是JDK5.0学XDoclt的,有了注解,以后我们可以不必写接口,EJB写起来会方便很多。EJB3.0要精简写法,注解要占一些功劳。
介绍一个常用的注解:@Override,示例如下:
public class Test extends ATest{
@Override
public void test() {
}
}
在方法前加了这个注解,就限定死了Test的这个方法一定要是覆盖自ATest的方法test,否则就会报错。比如你不心把方法test()写成了tesd(),编译时就会报错。另一个要注意的是@Override用于定义覆盖接口的方法,也就是说ATest必须是一个抽象类、普通类,但不能是接口。
另一个常见到的注解是@Deprecated,表明该项(类、字段、方法)不再被推荐使用。不过我们自己一般很少用到这个注解。
好了,注解只讲这两个吧,也不必了解太多,知道个概念,以后用到的时候再说吧。关于注解,建议看看XDoclt,这是一个开源小工具,在项目开发中非常好用。
作者简介
陈刚,广西桂林人,著作有《Eclipse从入门到精通》
您可以通过其博客了解更多信息和文章:http://www.chengang.com.cn