如何使用Observable java

时间:2015-04-25 13:07:59

标签: java

我有以下内容:

abstract class A extends Class C (abstract class C extends D)

private String name="";

public void setFff(double val) {

    double old = fff.getAvg();
    fff.update(val);

    ListIterator<Observer> it = fffListeners.listIterator();
    String ss;

    while (it.hasNext()) {
      ss = name + this.toString();
      it.next().update("fff", fff.getValue(), fff.getAvg(), ss);
    }
}

class B extends D implements Observable

private String name="";
public void notifyObservers() {
        for(Observer observer:fffListeners){
            v=fff.getValue();
             m=fff.getAvg();
            observer.update("fff", v, m, (name+this.getName()));
        }       
    }

interface Observer

void update(String nn, double bbb, double aaa, String nameThraed);

abstract class E implements Observer

class G extends E

G类中的

更新如下

public void update(String string, double v, double m, String s) {

        if ((B.getClass == "G")
                && string.equals("fff")&& (s.equals("B"))) {

             this.fffList.add(m);
            System.out.println("List of fff :" + fffList);

        }
    myMethod(fffList);
}

我希望获得m的全部价值,并在收到fffList的通知时将主题放入列表E。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

扩展您的界面:

void update(Object sender, String nn, double bbb, double aaa, String nameThraed);

在您的特殊情况下,您可以检查发件人是否是您的E类实例。

if(sender instanceof E){
...
}

希望这会对你有所帮助。请重构您的参数:)