2.4 版本的 Xtend 引入了活动注解的概念,开发者能够通过它参与到将Xtend 源码转换成Java 源码的流程。而现在Xtend 2.4.3 版本中的活动注解则具有了访问文件系统的能力。
Xtend 是一种静态类型编程语言,它会翻译成 Java 源码。虽然该语言与 Java 语言非常相近,但是它在 Java 的基础上扩展了很多目前 Java 依然缺失的语法结构。例如,开发者能够通过 Xtend 使用 Lambda 表达式、类型推理、扩展方法等内容。
我们通常会在 Eclipse Java IDE 中使用 Xtend。从表面上看我们是保存了一个 Xtend 源文件,但在后台它会被立即翻译成 Java 源码。因为 Xtend 和 Java 能够在一个项目中共存,所以我们可以在 Xtend 源码中引用 Java 类和方法,反之亦然。另外,Xtend 引入的语法结构能够被应用到已有的 Java 类中。所以,我们可以扩展已有的功能,哪怕它们来自于第三方类库。
引入活动注解的目的是为了影响 Xtend 和 Java 源码之间的转换流程。它的工作原理类似于宏或者 Objective-C 编译器指令,同时它还有助于减少样板代码。例如,如果我们对一个普通的 Xtend 类使用“@singleton”注解,那么生成的 Java 类将自动包含反映该设计模式的必要的代码结构。即使这些结构将会在晚些时候生成,但在其他的 Xtend 类中依然能立即使用它们。上面的“@singleton”类将暴露一个 getInstance() 方法,而这仅仅是因为应用了一个注解。
通过接受一个文件系统 API,开发者现在能够使用活动注解创建源码之外的制品。例如,Xtend 的首席开发人员 Sven Efftinge 在一个博客中展示了如何使用活动注解支持国际化。他对一个包含了静态字符串常量的 Xtend 类添加了注解,之后通过注解引导生成了一个包含访问常量的静态方法的 Java 类和一个包含字符串值的相关属性文件。注解的另一种用途是自动生成源码文件的签名或者摘要:
依然是临时的活动注解 API 拥有了一个新的编译器阶段和 API,用户能够通过它们在编译期间与文件系统进行交互。这一方面有助于根据配置文件或者普通的项目资源生成签名,另一方面也可以根据代码更新或者全部生成这样的资源。
查看英文原文: Xtend 2.4.3 Extends Active Annotations to the File System
评论