2015-04-25 3 views
0

У меня есть следующие:Как использовать Observable 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

Ваш вопрос в его нынешнем виде очень трудно понять. Не могли бы вы попытаться объяснить лучше? – CKing

+0

Добро пожаловать в переполнение стека! Я отредактировал ваше сообщение, чтобы удалить фрагменты кода. Пожалуйста, отложите образцы кода на 4 пробела, чтобы они отображались правильно. Фрагменты кода предназначены только для 'HTML',' Javascript' и 'CSS' – ByteHamster

+0

Я согласен с @bot, не могли бы вы улучшить свой код? – EAA

ответ

0

Расширьте интерфейс:

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

В вашем конкретном случае, вы можете проверить, если отправитель является экземпляром своего класса Е.

if(sender instanceof E){ 
... 
} 

Надеется, что это поможет. И, пожалуйста, отредактируйте свои параметры :)

+0

мне нужно использовать nameThraed, чтобы знать отправителя – Stella

Смежные вопросы