Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单问题:Java中的ValueChanged事件_Java_Events_Variables - Fatal编程技术网

简单问题:Java中的ValueChanged事件

简单问题:Java中的ValueChanged事件,java,events,variables,Java,Events,Variables,Java中是否存在值更改时触发的事件?就像这个例子一样 public class Example{ public String var1 = "Something"; public Int var2 = 4; } 如果var1或var2无论触发什么事件,它们的值都会更改。答案是不要公开字段。将字段设置为私有,引入getter和setter方法,如果值发生更改,您可以在setter中调用任何您喜欢的方法 public class Example { private Str

Java中是否存在值更改时触发的事件?就像这个例子一样

public class Example{
    public String var1 = "Something";
    public Int var2 = 4;
}

如果
var1
var2
无论触发什么事件,它们的值都会更改。

答案是不要公开字段。将字段设置为私有,引入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();
    }
}

查看PropertyChangeListener

我认为您可能正在寻找“观察者”设计模式()

这是在java中通过扩展和让想要得到通知的对象实现接口来实现的