JDK5.0新特性之:其他

简介:
文/陈刚 2005-11-26   

一、自动装箱与拆箱

  这是一个很体帖的改进。在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

目录
相关文章
|
1月前
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
69 3
|
2月前
|
监控 安全 Java
探索Java的未来:JDK 18新特性全览
探索Java的未来:JDK 18新特性全览
69 0
|
2月前
|
缓存 安全 Java
JDK 14全景透视:每个Java开发者必知的新特性
JDK 14全景透视:每个Java开发者必知的新特性
51 0
|
2月前
|
JavaScript 前端开发 安全
Java新纪元:一探JDK 15的全新特性
Java新纪元:一探JDK 15的全新特性
43 0
|
2月前
|
JSON Java API
探秘JDK 13的黑科技:新特性一览
探秘JDK 13的黑科技:新特性一览
43 0
|
2月前
|
Java 测试技术 API
深度剖析JDK 11全新特性:编程艺术的巅峰之作
深度剖析JDK 11全新特性:编程艺术的巅峰之作
39 0
|
2月前
|
存储 Java 数据管理
探秘JDK 10:崭新特性悉数解析
探秘JDK 10:崭新特性悉数解析
30 0
|
2月前
|
JSON 编解码 Java
Java升级:JDK 9新特性全面解析“
Java升级:JDK 9新特性全面解析“
29 0
|
2月前
|
并行计算 Java 程序员
深入解析JDK 8中的Lambda表达式:新特性的力量
本文将深入探讨JDK 8中引入的最引人注目的新特性之一:Lambda表达式。我们将详细解析Lambda表达式的概念、语法和用途,并通过实际示例展示如何利用Lambda表达式简化代码和提高编程效率。
|
2月前
|
SQL 人工智能 运维
JDK8 — 17特性
JDK8 — 17特性
57 0
JDK8 — 17特性