Java 1.5 中新的静态导入特性

ZDNet软件频道 时间:2004-04-16 作者:Builder.com |  我要评论()
本文关键词:javatips
Java 1.5 的静态导入特性允许你导入一个接口或类的静态成员。引入这一特性的目的是防止程序员错误地使用“常量接口反模式”。
本文译自Builder.com,未经许可请勿转载

Java 1.5 的静态导入特性允许你导入一个接口或类的静态成员。引入这一特性的目的是防止程序员错误地使用“常量接口反模式(Constant Interface antipattern)”。

工作原理

要导入一个类或接口的静态成员(也就是属性、方法和类),你要对 import 关键字使用 static 修饰符:

import static tips.Constants.*;

下面是 Constants 类型的定义:

package tips;

public interface Constants {

    public static final int PORT_NUMBER = 90;

    public static final String APP_NAME = "DOOLY";

    public static class StaticNestedClass {}

}

通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员。例如:

import static tips.Constants.*;

public class StaticImportTip {

    public static void main(String []args) {

        System.out.println(PORT_NUMBER);

        System.out.println(APP_NAME);

        System.out.println(StaticNestedClass.class);

    }

}

如果你决定使用新的静态导入特性,我推荐你单独地导入常量名,而不要使用通配符。因为这样做可以让人知道常量的来源。

比如说在下面的代码片断中,一个开发人员查看了代码之后不知道DEFAULT_URL 和PORT_NUMBER从哪个类中导入的。

import static tips.Constants.*;

import static tips.gen.App.*;

 

public class StaticImportTip {

    public static void main(String []args) {

        System.out.println(PORT_NUMBER);

        System.out.println(DEFAULT_URL);

    }

}

如果导入语句如下:

import static tips.Constants.PORT_NUMBER;

import static tips.gen.App.DEFAULT_URL;

那么常量的来源就很明显了。当然这是我的看法,如果你有不同的看法,请给我们发邮件让我们了解你的看法。

注意:这个技巧中的代码在 Windows 2000 下使用 Java build 1.5.0-beta-b32c 编译通过。要编译这个代码,必须使用javac“-source 1.5”选项。


本文作者:David Petersheim是Genscape公司的应用开发主任。他设计和开发服务器端应用程序来获取和处理实时能源数据。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134