2010-11-16 2 views
0

У меня есть следующие настройки в Java,Java, оповещения родителя об изменении объекта

public class Main { 

    // starts sub class 
    SubClass sub = new SubClass(); 
    sub.start(); 

    // sub will keep running and call method alert() on a specif change 
    // method alert is void but updates a public variable named status on sub 
    while(1==1) { 

     // I should ideally be able to catch/read sub status result here 
     // how can I do it? 
    } 
} 

Я новичок в Java, так что это не может быть действительным, и мой подход может быть неправильным. В таком случае, пожалуйста, указывайте мне в правильном направлении.

спасибо.

+0

Что вы хотите сказать? –

ответ

0

вы должны начать с ввода кода в основной метод :)

2

Я полагаю, SubClass.start() начинает новый поток, чтобы родительский работает параллельно с ребенком. Тогда основной класс может сделать Object.wait() на объекте sub, а нить SubClass может сделать Object.notify() на объекте sub.

+0

Я думаю, что только два человека в мире могут правильно использовать Object.notify(), а остальные из нас предназначены для использования Object.notifyAll(). –

0

Если SubClass не уже Runnable,

public class Main 
{ 
    public static void main(String args[]) 
    { 
     Thread myThread = new Thread(new Runnable() 
     { 
      public void run() 
      { 
       //Instantiate your SubClass here and do stuff. You can pass yourself as a parameter if you plan to do callbacks. 
      } 
     }); 
     myThread.setDaemon(true); 
     myThread.start(); 
    } 
} 

В качестве альтернативы, если вы реализовали Runnable интерфейс на SubClass затем просто использовать механику потоков (ожидание(), сообщите об этом(), и т.д. и т.п.).