gpt4 book ai didi

java 字段变化监听器

转载 作者:行者123 更新时间:2023-12-02 03:52:32 25 4
gpt4 key购买 nike

所以我真的想要某种方法来检测某个对象的字段变化。我用谷歌搜索了很长一段时间但没有找到任何东西。所以基本上我需要知道的是对象的某些变量何时发生变化。让我们以这个类为例:

public class Example{
String text = "test";

public static void main(String[] args){
Example e = new Example();
e.text = "something else";
}
}

我基本上想检测“text”变量何时发生变化。我知道你们很多人会说使用 getter 和 setter 等,但这不是我想要的。

由于我无法轻易解释的原因,我需要能够从类外部检测到字段更改。目前我正在考虑使用第二个线程,它基本上只是连续扫描对象列表,并使用反射来检测这种方式的变化,但这显然会使程序比它必须的更重。

所以我希望有一种方法可以为字段更改创建监听器,有人知道可以执行此操作的库/系统/方法吗?

最佳答案

让我们重获新生:)

有几种方法:

第一个是使用 Bound Properties inside Java Beans ,我相信它的工作方式与 Java 6 类似。 (是的,它也适用于 JavaSE)。

A bound property notifies listeners when its value changes. This has two implications:

The bean class includes addPropertyChangeListener() and removePropertyChangeListener() methods for managing the bean's listeners. When a bound property is changed, the bean sends a PropertyChangeEvent to its registered listeners. PropertyChangeEvent and PropertyChangeListener live in the java.beans package.

The java.beans package also includes a class, PropertyChangeSupport, that takes care of most of the work of bound properties. This handy class keeps track of property listeners and includes a convenience method that fires property change events to all registered listeners.

在第二个中,您可以免费获得大部分内容,它基于 Java 7 (javafx 2.0),并且 it's called JavaFX Properties .

You can also add a change listener to be notified when the property's value has changed, as shown in You can also add a change listener to be notified when the property's value has changed.

后者的缺点是 JPA 对此并不友好,因此运行起来有点痛苦。

关于java 字段变化监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757902/

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