0

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

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

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

4

3 回答 3

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;
于 2013-08-12T18:15:18.530 回答
0

没有内置的方法可以做到这一点。

Java 编译器使用Java 语言规范中定义的语法解析 Java 代码。

如果您想使用非 Java 语法编写可与 Java 编译器编译的程序,您将必须使用/创建一个工具,该工具可以将您的语法转换为有效的 Java(这种类型的转换属于通常提到的类别作为“预处理”)。

请记住,如果您确实创建了一个预处理器,它会在您需要维护和记录的事项列表中增加一件事,这对于大型/团队项目尤其重要。

于 2013-08-12T18:15:31.433 回答
0

不,你不能,至少在不使用外部工具的情况下不能。

这不是一个好主意。将来加入公司/项目的其他软件开发人员应该能够将源代码作为标准 java 读取。

于 2013-08-12T18:15:47.107 回答