我有一个类卡,其他卡(纸牌游戏)继承自它。卡片花色和数字存储在这样的枚举中
public static enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES
};
public static enum Rank {
DEUCE, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE
};
我的第一个问题是如何改变卡牌的顺序。在从类 Card 继承的每个单独的类(Card Game)中,因为不同的纸牌游戏对不同的纸牌赋予不同的重要性级别。
我的第二个问题是使用 Comparable Interface。
所以我有一张这样的班级卡片:
public class Card implements Comparable<Card> {
public Suit suit;
public Rank rank;
public Card(Rank ranker, Suit suiter) {
rank = ranker;
suit = suiter;
}
//Other Methods for rank and suit here.
@Override
public int compareTo(Card o) {
int rankCom = rank.compareTo(o.rank);
return rankCom != 0 ? rankCom : suit.compareTo(o.suit);
}
}
我最近刚被介绍到类似的接口,我不完全确定我的实现是正确的。当我想使用 collections.sort(cards_saver) 整理我的卡片时,问题就出现了。card_saver 是我存放卡片的地方。所有这些工作正常。collections.shuffle(cards_saver) 也可以正常工作。我在做 collections.sort 时遇到的问题是:
Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (List<Card>). The inferred type Card is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>
我会提出我所有的额外代码......只是这太长了。如果我没有很好地解释问题,请发表评论-我会尽力解释。
提前致谢