他のカード (カード ゲーム) が継承するクラス カードを取得しました。カードのスーツと番号は、次のように列挙型に格納されます
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 から継承する各個別のクラス (カード ゲーム) では、異なるカード ゲームが異なるカードに異なるレベルの重要性を置きます。
私の 2 番目の問題は、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) を使用してカードを整理したいときに問題が発生します。cards_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>>
私が持っているすべての余分なコードを載せたでしょう...これだけが長すぎます。問題を十分に説明していない場合は、コメントしてください。説明を試みます。
前もって感謝します