我想知道是否有任何方法可以让我在程序运行时观察变量值的变化。当然不使用调试器,我想以编程方式。例如:
class A
{
public static int valueToBeWatched;
}
所以在运行时,如果我项目中任何类的任何方法修改了这个值,MyValueChangeListner
事件应该被调用。
最佳答案
你不能。 Java 本身没有内置修改修改 Hook 。 显然,您可以进行轮询。但那样就不会“直播”了。
AspectJ 可能允许这样的想法,但我不确定它是否适用于原始变量,或者仅当您使用 getter 和 setter 时才适用。
干净的 Java 方式是使变量 private
并使用 getter 和 setter。
private valueToBeWatched;
public void setValue(int newval) {
valueToBeWatched = newval;
notifyWatchers();
}
public int getValue() {
return valueToBeWatched;
}
附带说明,尽可能避免static
。特别是 public
但不是 final
。
关于java - 如何观察变量的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386604/