gpt4 book ai didi

java - 将字段访问更改为 getter/setter 方法访问

转载 作者:行者123 更新时间:2023-11-30 11:59:06 25 4
gpt4 key购买 nike

是否可以将 Java 中的外部类字段访问更改为自动调用 getter/setter,并隐藏暴露的字段?我正在使用 Javabeans,我希望在字段属性更改时收到更改通知(这很重要)。

我找到了 cglib它可以自动将属性更改调用插入到 PropertyChangeSupport 字段。我知道 Project Lombok ,但是这个好像是修改了源码,另外也不支持修改字段权限。也许通过对 Lombok 的修改,这可以得到支持,或者是否有其他解决方案?

提前干杯和感谢,克里斯

最佳答案

最简单的选择是修改 API 客户端的源代码。假设这不是一个选项,除非您至少可以控制客户端二进制文件并且可以使用字节码操作,否则没有办法以这种方式自动封装字段。如果您有那种控制级别,那么是的,cglib 可能是一个选项。但是,即使使用字节码操作,也无法拦截 java.lang.reflect.Field.set,因此您需要保证没有任何内容使用反射修改字段。

您最好的选择是打破 API 并引入 setter/getter。这应该提醒您在创建 API 时始终使用适当的封装。

关于java - 将字段访问更改为 getter/setter 方法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709928/

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