Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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 使用Bean PropertyChangeListeners和psuedo属性进行事件通知_Java_Events_Listener_Javabeans - Fatal编程技术网

Java 使用Bean PropertyChangeListeners和psuedo属性进行事件通知

Java 使用Bean PropertyChangeListeners和psuedo属性进行事件通知,java,events,listener,javabeans,Java,Events,Listener,Javabeans,我知道属性不一定与类中的任何特定变量相关。这样做除了看起来很奇怪之外,其他类可以利用PropertyChangeListeners,比如在幕后有没有我遗漏的bean?(其思想是,我们希望听到文件何时更改,因此我们制作了一个“假属性”,当文件更改时该属性“已更改”,侦听器调用相应的方法来读取文件。) 如果有人知道一个更好的方法,我想也很高兴知道。这听起来像是对真正问题的一个粗暴的攻击。即使使用一个真正的基于可观察/声明的系统,我也不知道使用这样的通用属性有什么好的理由。如果你真的想追求这样一个模型

我知道属性不一定与类中的任何特定变量相关。这样做除了看起来很奇怪之外,其他类可以利用PropertyChangeListeners,比如在幕后有没有我遗漏的bean?(其思想是,我们希望听到文件何时更改,因此我们制作了一个“假属性”,当文件更改时该属性“已更改”,侦听器调用相应的方法来读取文件。)


如果有人知道一个更好的方法,我想也很高兴知道。

这听起来像是对真正问题的一个粗暴的攻击。即使使用一个真正的基于可观察/声明的系统,我也不知道使用这样的通用属性有什么好的理由。如果你真的想追求这样一个模型,考虑一个<代码> ObjutWrtReCutNo.<代码>属性——至少这个意图是已知的,并且有一个“绑定”的值。只创建一个新类型的事件和侦听器可能是合适的。当我第一次开始研究这个问题时,我对事件和听众都是相当陌生的,但现在我发现它们并不像看上去那么复杂,这可能是最好的途径。
private PropertyChangeSupport pcs;

//Constructor omitted

public Object getMyProperty() {
    return null;
}

public void setMyProperty() {}

public void writeToAFile(String input) {
    //code omitted, writes the string input to some file.
    pcs.firePropertyChange("myProperty", null, null);
}