有没有办法为给定的Java项目定义自定义语法?
例如,我希望能够做的一件事就是为标准的getter和setter创建一个简写语法(类似于.NET的“{get; set;}”)。正如我一直在寻找的,我所遇到的只是编写DSL可能能够实现这一目标,但正如我在研究它们时,我不知道它们是否适合需要。
那么有没有办法定义像这样的额外语法元素?
答案 0 :(得分:9)
由于其他人已经确定无法改变语法,因此您可能对Project Lombok感兴趣。
从“入门指南”:
private boolean employed = true;
private String name;
public boolean isEmployed() {
return employed;
}
public void setEmployed(final boolean employed) {
this.employed = employed;
}
protected void setName(final String name) {
this.name = name;
}
成为
@Getter @Setter private boolean employed = true;
@Setter(AccessLevel.PROTECTED) private String name;
答案 1 :(得分:0)
没有内置方法可以做到这一点。
Java编译器使用Java Language Specification中定义的语法解析Java代码。
如果要使用非Java语法编写可与Java编译器兼容的程序,则必须使用/创建一个可以获取语法并将其转换为有效Java的工具(此类转换属于类别通常称为“预处理”)。
请记住,如果您确实创建了一个预处理器,它会在您需要维护和记录的事项列表中添加一项内容,这对于大型/团队项目尤为重要。
答案 2 :(得分:0)
不,你不能,至少没有使用外部工具。
这不是一个好主意。未来加入公司/项目的其他sw开发人员应该能够将源代码视为标准java。