免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 931 | 回复: 0
打印 上一主题 下一主题

Java 1.5 的静态导入特性(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-18 20:14 |只看该作者 |倒序浏览

                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”选项。
[color="#800080"]
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17549/showart_173115.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP