0

playframework中,它使用 javassist 库来让一个类的公共字段可以用作property.

请参阅示例:

public class User {
    public String name;
}

User user = new User();
user.name = "Freewind"
System.out.println(user.name);

在编译的时候,play用javassist增强字节码,最终代码类似:

public class User {
    private String name;
    public String getName() { return this.name; };
    public void setName() { this.name = name; };
}

User user = new User();
user.setName("Freewind");
System.out.println(user.getName());

您可以看到不仅该字段name具有 getter 和 setter,而且它的调用也更改为 getter 和 setter。

我想知道是否还有其他方法可以做到这一点(使用 javassist 以外的其他东西)?

我找到了Annotation Processing Tool,但我不确定它是否可以做到。

还是方面?或者是其他东西?

4

2 回答 2

1

You can look at Project Lombok, which does something similar, but with annotations. With project lombok you do need to use the getters and setters in your own code.

于 2012-04-18T13:58:16.253 回答
0

不是没有其他工具。

与 C# 不同,Java 不支持属性。

于 2012-04-18T13:55:12.887 回答