嗨,我正在为我的项目做扑克游戏。我在弄清楚如何测试我的contains()
方法时遇到了一些问题。例如,我知道您可以键入.contains("KING of SPADES");
但它不适用于我的参数。那么我应该写什么呢?同样的问题也add2
我真的不知道如何使用它(如何添加列表以及如何打印出来(,所以有人可以解释一下吗?
ArrayList<Card> PileOfCards;
public Pile(){
PileOfCards = new ArrayList<Card>();
}
public void add(Card c){
PileOfCards.add(c);
}
public void add2(List<Card> cards){
PileOfCards.add((Card)cards);
}
public Boolean contains(Card c){
return PileOfCards.contains(c);
}
至于你的第二个问题:试试这个
public void add2(List<Card> cards)
{
PileOfCards.addAll(cards);
}
这当然不会检查最终的重复项...
对于第一个问题,我们需要您的Card
课。
- 关于你的"add2(("问题:
您应该使用addAll()
方法将列表附加到另一个(@see文档(并删除 cast 运算符(Card) cards
,您正在尝试将卡片列表转换为单个卡片......
- 关于"contains(("方法:
List.contains
方法通过引用检查对象实例是否包含在 List 中。因此,即使参数是具有完全相同属性的卡片,也不会将其视为包含在列表中。尝试遍历您的列表并检查卡片标题是否与您循环播放的卡片标题相同(@see此线程(。这可能不是最好的解决方案,因为@Zabuza提出了一些可能的方法,但您现在应该从它开始。