所以我在我的主函数中创建了一个具有静态变量的类X.我还为X类添加了一个观察者。 当我在另一个类中创建类X的新实例时,我的观察者不再收到通知,因为它是X类的另一个类实例。如何设法通知我无论如何,无需通过我的整个程序,这是不可能的,通过类X的观察员? 问题是新创建的ClassX实例没有附加观察者。同一个观察者的同一类型的不同类,怎么办?
/*different file*/
public class CreatingNewX{
public void incrementSomeValue1(){
ClassX x = new ClassX();
x.someMethod();
}
}
/*different file*/
public class observer implements Observer {
private ClassX ClassXValue = null;
public observer(ClassX ClassXValue){
this.ClassXValue = ClassXValue;
}
public void update(Observable obs, Object obj){
if(obs == ClassXValue){
/*do something*/
}
}
}
/*different file*/
public class ClassX extends Observable {
private static int somevalue1;
private static int somevalue2;
private static int somevalue3;
public void someMethod(){
somevalue1++;
setChanged();
notifyObservers();
}
}
/*different file*/
public class Main{
public static void main(String[] args) {
ClassX X = new ClassX();
ClassObserver observer = new ClassObserver(X);
X.addObserver(observer);
}
}
请阅读[MCVE]并编辑您的问题。 – Frank
增加了一个例子,但实际上它比这个例子更大更复杂。 – LifeisHard