是否可以在项目中更改Java语法?

时间:2013-08-12 18:11:12

标签: java syntax

有没有办法为给定的Java项目定义自定义语法?

例如,我希望能够做的一件事就是为标准的getter和setter创建一个简写语法(类似于.NET的“{get; set;}”)。正如我一直在寻找的,我所遇到的只是编写DSL可能能够实现这一目标,但正如我在研究它们时,我不知道它们是否适合需要。

那么有没有办法定义像这样的额外语法元素?

3 个答案:

答案 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。