在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,但我不确定它是否可以做到。
还是方面?或者是其他东西?