当值发生变化时,Java中是否会触发事件?就像在这个例子中一样
public class Example{
public String var1 = "Something";
public Int var2 = 4;
}
如果var1
或var2
他们的值发生变化,那么该事件应该触发。
答案 0 :(得分:3)
答案是不要公开公开您的字段。将字段设为私有,引入getter和setter方法,如果值发生变化,您可以在setter中调用任何您喜欢的内容。
public class Example {
private String var1 = "Something";
public String getVar1() {
return var1;
}
public void setVar1(String var1) {
// TODO: null guards
if (var1.equals(this.var1)) {
// No-op - no need to do anything
return;
}
this.var1 = var1;
notifyListenersOfChangeToVar1();
}
}
答案 1 :(得分:2)
查看PropertyChangeListener http://download.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html
答案 2 :(得分:0)
我认为您可能正在寻找“观察者”设计模式(Wikipedia Entry)