2013-03-22 135 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

相关问题