如何在Java中的构建时使用注释动态生成代码?
问题内容:
我正在寻找一种生成代码的解决方案。我已经用谷歌搜索,搜索了SO和一些博客,但没有找到一个好的解决方案。
我想在类上添加注释,并且在编译时,一些方法和属性会自动添加到类中。
我正在寻找的解决方案的要点:
- 生成的代码可定制(强制)
- 无需
apt
调用任何外部工具(强制性) - 仅JDK,无第三方框架(
强制选配) - 注释名称可自定义(可选)
例如 :
@Aliasable
public class MyClass {
//Some properties
// Contructor ...
// Some methods
}
编译后,我的课看起来像这样:
public class MyClass {
//Some properties
private String alias;
// Contructor ...
// Some methods
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias=alias;
}
}
编辑:
最后,我将我的第三个要求从“强制性”变成了“可选”,并选择了项目Lombok(与Maven和Eclipse轻松集成,使用它几乎不需要做任何工作)。
问题答案:
看看Lombok项目。当您编写时,它会按照您的要求生成代码:
public class MyClass {
@Getter @Setter private String alias;
}
如果您需要的话,它还会做更多的事情。我知道您不要求任何外部工具,但您基本上会重新创建它。