これは私のコードがどのように見えるかです:
Class A {
private boolean valueChanged;
public static void main(String args[]) {
B obj = new B();
obj.addPropertyChangeListener("valueChanged", new ValueChangeListener());
obj.someMethodThatFiresChange();
}
private class ValueChangeListener implements PropertyChangeListener {
public void propertyChange(PropertyChangeEvent evt) {
if(Boolean.TRUE.equals(evt.getNewValue()) {
doSomething(); //code never breaks here!!
}
}
}
}
Class B {
private boolean valueChanged;
public void setValueChanged(boolean b) {
boolean oldVal = valueChanged;
valueChanged = b;
firePropertyChange("valueChanged", oldVal, valueChanged);
}
public void someMethodThatFiresChange() {
setValueChanged(true);
}
}
ただし、このコードは機能していないようです。イベントが発生したときに実行されるはずのブロックに到達することはありません。私はここで何が間違っているのですか?