在我的 Java 应用程序中,我有一个类 Foo
class Foo {
String field1;
String field2;
}
我想要一些生成的代码,这些代码在此类中的字段上使用反射(虚构模板语言)
#for each Field $f in Foo.class.getDeclaredFields()
#writeFile $f.java
public @interface $f {
}
最终目标是让 Field1.java 和 Field2.java 里面只有一个简单的@interface 定义。
是否有可用的模板语言可以将这一代作为 Maven 构建过程的一部分?
我能找到的最接近的是JET,但这个项目似乎更倾向于生成在运行时可用的 Java 源代码,而不是在编译时可用。理论上,我可能可以使用 AntRun 以及几个 Javac 和 Java 任务来完成这项工作,但它会很麻烦。
我需要它的实际用例是为 Google Guice 生成BindingAnnotations(将在 GWT 源代码中使用,因此它们在编译时必须作为 .java 文件存在)。