gpt4 book ai didi

java - 如何为变量创建更改监听器?

转载 作者:IT老高 更新时间:2023-10-28 20:46:37 26 4
gpt4 key购买 nike

假设我使用语句int someVariable; 定义了一些变量。代码运行时,变量的值会发生变化。

如何跟踪这个变量的变化?如何实现一些行为类似于 onSomeVariableChangedListener 的监听器?

我还需要知道一个页面中的其他方法何时执行,以便我可以在另一个类中设置监听器。

最佳答案

Java 为此类事情提供了一个简单的观察者模式实现,但您需要在管理监听器通知的方法中设置观察到的变量。如果你不能扩展 Observable,你可以使用组合(即在你的类中有一个 Observable 实例来管理通知),或者你可以看看 java.util.Observable 来了解如何滚动你自己的版本。

Flux.java

import java.util.Observable;

public class Flux extends Observable {
private int someVariable = 0;

public void setSomeVariable(int someVariable) {
synchronized (this) {
this.someVariable = someVariable;
}
setChanged();
notifyObservers();
}

public synchronized int getSomeVariable() {
return someVariable;
}
}

赫拉克利特.java

import java.util.Observable;
import java.util.Observer;

public class Heraclitus implements Observer {
public void observe(Observable o) {
o.addObserver(this);
}

@Override
public void update(Observable o, Object arg) {
int someVariable = ((Flux) o).getSomeVariable();
System.out.println("All is flux! Some variable is now " + someVariable);
}
}

关于java - 如何为变量创建更改监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433855/

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