在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,但我不确定它能做到。
或方面?或其他什么?
答案 0 :(得分:1)
你可以看看Project Lombok,它做了类似的事情,但带有注释。使用项目lombok,您需要在自己的代码中使用getter和setter。
答案 1 :(得分:0)
不是没有其他工具。
与C#不同,Java不支持属性。