全球旧事资料 分类
的原型“
oclosures”提案就是凭借这种技术将方法转换为Si
gleAbstractMethodSAM类型然后在Java6上编译。在我们的会话中Chapma
指出SAM类型还支持自由变量这是一个封闭的关键方面这种方法本身除了Si
gleAbstractMethod所需的参数外还可以使用AsAdditio
al注解声明额外的参数。在获得SAM类型的实例时这些参数可以带有绑定值然后在每次调用时传递给方法。
Chapma
还建立了Rapt工程来探索这种技术的其他用途为两种语言的变化提供应用Multili
eStri
gs和XML它们是为JDK7使用的但却不会把它放在最终的发布中。Java也可以通过这种方法来实现自我封闭。当问及这个时Chapma
说我们刚刚使用这个完成了一个Swi
g项目。我们发现了一种小型的bug最近其中一种还没有修复但是其他都还好没有人想去使用内部等级的。
Lombok项目是注解处理器的另一个项目它将技术又向前推进了。Lombok将注解作为回调以运行Javaage
t后者会根据注解重写各种javac内核。由于它是内部操作所以它不适合产品使用JVM各个小版本中的内部类也可能不一样但是这个项目究竟能做什么还是很有启迪作用的包括
通过Getter和Setter注解定义各种访问级别的属性如SetterAccessLevelPROTECTEDprivateStri
g
ame
EqualsA
dHashCode注解会根据对象中的属性实现hashCode和equals方法ToStri
g注解会实现toStri
g方法
data方法相当于ToStri
g、EqualsA
dHashCode、所有属性的Getter以及所有非fi
al属性的Setter的集合可以使用data方法和构造方法初始化fi
al属性还可以通过这种方法进行其他的语言试验比如移除Java中的异常。
虽然注解处理器为语言实验开发了一条新路线但仍要注意新代码可以被探索者很容易的理解而不是被机器。在我们的会话中Chapma
给出了很多建议要生成源代码而不是字节码注意生成代码的格式尤其是缩进。编译器不在乎代码是不是在同一行但使用者在乎我甚至还在使用注解处理器在适当的地方加入一些注释。
f山东建筑大学毕业设计外文文献及译文
10如果这个技术普遍流行起来通过IDE可以更容易的查看编译代码。
IDE中的语法糖
BruceChapma
还提到了第三项技术将语法糖从语言迁移到IDE中他在博客中说过这个问题。对于JavaIDE来说。生成部分代码已经是不可缺少的了不如说getter和setter方法但是IDE开发者刚刚开始挖掘这个概念。JetBrai
s的I
telliJ9提供了一个内部类相似其中开发人员可以输入简短的代码块如代码折叠代理这些可以被扩展到完整的匿名内部类这样坚持使用标准的匿名内部类的开发者就很容易适应了。Eclipse也有一个类似的插件。关键的是这种语法r
好听全球资料 返回顶部