2013-03-22 128 views
0

我正在嘗試爲類實現重置函數,最簡單的方法是使用arraylist上的removeAll()並調用構造函數。然而,這似乎並沒有工作,因爲我有它的錯誤的語法,因爲我正在嘗試一些我不能做的事情。從類中的方法調用構造函數

截至目前我有一個工作方法,但我想從被稱爲StandardDeck()構造它清理乾淨,因爲它只是重複的代碼(所有期望removeAll()語句)。

public void reset(){ 
    cardArray.removeAll(cardArray); 
    for(int suit = 0; suit < 4; suit++){ 
     for(int rank = 0; rank < 13; rank++){ 
      PlayingCard card = new PlayingCard(suit, rank); 
      cardArray.add(card); 
     } 
    } 
} 
+3

你想[清除](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#clear())arrayList? – 2013-03-22 17:12:32

+0

'調用構造函數'..你想要做什麼? – Anirudha 2013-03-22 17:13:20

+1

他說構造函數和重置方法有重複的代碼,他想要清理...... – 2013-03-22 17:14:12

回答

3

如果我沒有理解好你的需要,你想這樣:

public class StandardDeck { 

    List<PlayingCard> cardArray = new ArrayList<>(); 

    public StandardDeck() { 
     reset(); 
    } 

    public void reset() { 
     cardArray.clear(); 
     for(int suit = 0; suit < 4; suit++){ 
      for(int rank = 0; rank < 13; rank++){ 
      PlayingCard card = new PlayingCard(suit, rank); 
      cardArray.add(card); 
      } 
     } 
    } 
} 

無需重複循環。正如我之前指出的,clear是清除列表的標準和最佳解決方案。

+0

是這樣做的我正在想另一種方式,雖然試圖調用一個方法的構造函數而不是調用構造函數中的方法。 – Bob 2013-03-22 17:19:48

相關問題