変数を変更できるかどうかを例外としてclass1に通知します。例外をスローするためにpropertyChangeを配置しようとしましたが、このメソッドではできません。 class1にどうすれば通知できますか?Java beanで例外をスローすることができます
class1に - >
public void setProperty(int var) {
if(var > 0){
propertySupport.firePropertyChange("var", this.var,var);
this.var = var;
}else{
System.out.println("bla bla");
}
}
//methods
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
}
クラス2 - >
@Override
public void propertyChange(PropertyChangeEvent evt){
if(evt.getNewValue().equals("var"))
//TODO
}else{
//throw exception to not change var in class1
}
'if(evt.getNewValue()==" var ")' ???いいえ、文字列と '=='を比較しないでください。これは、あなたがやりたいことではない* references *を比較するためです。代わりに '.equals(...)'メソッドを使用してください。 –
プロパティを変更して例外を渡すべきではありません。これは状態の変化を通知するためのもので、その他のものはありません。リスニングクラスが国家の変化にどのように反応するかは、それに依存します。 –
それで、class1にvarを変更しないように通知する方法は? – Liru