[英]Simulate `property` in Java: how to use public field as property?
在playframework中 ,它使用javassist库使类的公共字段可用作property
。
参见示例:
public class User {
public String name;
}
User user = new User();
user.name = "Freewind"
System.out.println(user.name);
在编译时,用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以外的其他方式)?
我找到了注释处理工具 ,但不确定它是否可以做到。
还是aspectj? 或者是其他东西?
您可以查看Project Lombok ,它的功能类似,但带有注释。 使用Lombok项目时,您确实需要在自己的代码中使用getter和setter。
并非没有其他工具。
与C#不同,Java不支持属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.