gpt4 book ai didi

java - 在Java中模拟 `property` : how to use public field as property?

转载 作者:行者123 更新时间:2023-12-01 15:25:33 26 4
gpt4 key购买 nike

playframework ,它使用javassist库让类的公共(public)字段可以用作属性

参见示例:

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 ,但我不确定它能做到这一点。

还是aspectj?还是别的什么?

最佳答案

您可以查看Project Lombok ,它执行类似的操作,但带有注释。对于 lombok 项目,您确实需要在自己的代码中使用 getter 和 setter。

关于java - 在Java中模拟 `property` : how to use public field as property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com