2013-02-02 36 views
0

我在java編程中遇到了一個問題,我如何讓一個類的所有對象在java中同時調用它們自己的方法?在java中同時在所有類的對象中調用方法

提前致謝。

+0

也許你正在考慮靜態方法......屬於類而不是實例 – Cris

+0

如果我聲明方法是靜態的並調用類的方法,是否所有類的實例都調用一個方法? – user1887420

+1

*「我有一個問題..」* ..在解釋問題。 - 到底想要達到什麼目的?向我解釋,好像我是一個潛在的用戶,試圖決定是否購買*您的*軟件或您的競爭對手*。 –

回答

1

從我對你的問題的理解中,你爲什麼不把類的所有實例都保存在一個集合中,然後迭代它們並調用你希望的所有方法?

0

下面是一個例子代碼,我的理解你的問題:

public class Flip { 

    private static List<Flip> instances = new ArrayList<Flip>(); 

    [... fields, etc] 

    public Flip() { 
     [...init the fields] 
     synchronized(instances) { 
      // if you access the instances list, you have to protect it 
      instances.add(this); // save this instance to the list 
     } 
    } 

    [... methods] 

    public void calculate() { 
     synchronized(instances) { 
      // if you access the instances list, you have to protect it 
      for (Flip flip : instances) { 
       // call the doCalculate() for each Flip instance 
       flip.doCalculate(); 
      } 
     } 
    } 

    private void doCalculate() { 
     [... here comes the original calculation logic] 
    } 
} 

關鍵的一點是,你必須以某種方式登記翻轉的所有實例。稍後你可以遍歷它們。

+0

親愛的richcoleuk感謝您的關注。事實上,我想模擬D觸發器的行爲。正如您在邏輯設計中所知道的那樣,當時鍾脈衝的邊沿到達時,所有D觸發器的輸入將同時傳輸到它們的輸出。迭代列表不是一個合適的解決方案,因爲它有一個並行的順序方法。所以我需要一種方式,所有的觸發器實例同時調用一個方法。問候。 – user1887420

+0

也許你是把這個評論寫進了錯誤的答案。另外,我認爲我的答案比這更完整和詳細。 – gaborsch

相關問題