jsr75 JSR 308:Java语言复杂度在恣意增长?

在上周举行的JavaOne大会中关于“被提议的Java SE7(“TS-5581:即将到来的Java编程语言的变化”)语言新特性”的介绍中,JSR 308 (Java类型注解)的综述占了很重要的一部分。除此之外,Alex Buckley (Sun Microsystems)、Michael Ernst (MIT) 和 Neal Gafter (Google)等与会者还介绍了其他一些Java语言新特性:如 改进的catch子句(multi-catch)、 安全的re-throw,和Java模块(Java Modules)。

JSR 308想要解决在Java 1.5注解中出现的两个问题:

在句法上对注解的限制:只能把注解写在声明的地方
类型系统在语义上的限制:类型系统还做不到预防所有的bug
JSR 308 通过如下方法解决上述两个问题:

对Java语言的句法进行扩充,允许注解出现在更多的位置上。包括:方法接收器(method receivers,译注:例public int size() @Readonly { ... }),范型参数,数组,类型转换,类型测试,对象创建,类型参数绑定,类继承和throws子句。
通过引入可插拔的类型系统(pluggable type systems)能够创建功能更强大的注解处理器。类型检查器对带有类型限定注解的源码进行分析,一旦发现不匹配等错误之处就会产生警告信息。

针对上述有关JSR 308的内容,Michael Nygard写了一篇题为Java程序员什么时候离身而去?JSR 308就是使大家离开Java的导火索的帖子,文章表明了他的观点:JSR 308对Java语言本身和Java开发者来说都有较大影响。在这篇帖子中,在给出了几个如何使用注解的例子之后,Nygard说JSR 308和Java 1.5中引入的范型技术一起都大大增加了Java语言的复杂性,但这些复杂性却没有为Java带来一点点益处
Tags:  jsr205 jsr82 jsr120 jsr220 jsr135 jsr211 jsr181 jsr184 jsr168 jsr75

延伸阅读

最新评论

发表评论