论坛: 编程破解 标题: Java1.5中新的静态导入特性(转贴) 复制本贴地址    
作者: heluxue0 [heluxue0]    论坛用户   登录



文章来源:(中国IT认证实验室)
原文出处:http://www.chinaitlab.com/www/news/article_show.asp?id=19213
 
 
要导入一个类或接口的静态成员(也就是属性、方法和类),你要对 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”选项。



地主 发表时间: 04-04-23 11:46

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号