Java 一个类可以观察到多个可见物吗?

Java 一个类可以观察到多个可见物吗?,java,android,observer-pattern,Java,Android,Observer Pattern,如果实现Observer的类可以观察到多个可观察类,那么该类如何知道哪个可观察类发生了变化 public class MainActivity extends Activity implements Observer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ObservableClas

如果实现Observer的类可以观察到多个可观察类,那么该类如何知道哪个可观察类发生了变化

public class MainActivity extends Activity implements Observer {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ObservableClass1 oc1 = new ObservableClass1();
        oc1.addObserver(this);
        ObservableClass2 oc2 = new ObservableClass2();
        oc2.addObserver(this);
    }

    @Override
    public void update(Observable observable, Object data) {

        //How will I know which observable hasChanged?
    }
}
我在
observable
上找不到任何方法来比较或知道它的类名

或者我应该使用

observable.getClass().getSimpleName();

并进行字符串比较?

您还可以使用
instanceof
操作符检查称为更新的
可观察的
类,例如:

     @Override
     public void update(Observable observable, Object data) {

       if (observable instanceof ObservableClass1) {
          //prcess ObservableCLass1 update here
       } else if (observable instanceof ObservableClass2) {
          //process ObservableClass update here
       } else {
          //some default action or error
       }
    }

这是可能的。java observable对象可以强制转换到它的子类,通过这种方式,您可以实现这一点(使用instanceof操作符)

不,java不能强制转换observable到另一个类,那么这段代码就不起作用了。