私はOracleがJavaのチュートリアルでトランプ・演習を解決しようとしている:型の不一致-問題
public class CardClass {
public static String suit;
public static String rank;
final String[] suits = {"cloves","hearts","spades","diamonds"};
final String[] ranks = {"Ace","2","3","4","5","6","7","8","9","Jack","Queen","King"};
public CardClass(int suit, int rank) {
// TODO Auto-generated constructor stub
CardClass.suit = suits[suit];
CardClass.rank = ranks[rank];
}
public static void printCard() {
System.out.println("The card's suit is: " + suit + " and the card's rank is: " + rank);
}
public static void main(String[] args) {
new CardClass(1,1);
printCard();
}
}
と
public class DeckClass{
public static String[][] deck;
public DeckClass() {
// TODO Auto-generated constructor stub
for(int i=0; i<4;i++) {
for(int j=0; j<13; j++)
deck[i][j]= new CardClass(i,j);
}
}
public static void printDeck() {
for(String a: deck["hearts"]) {
System.out.println("In hearts the deck contains:"+ a);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new DeckClass();
printDeck();
}
}
をそして私が手次のエラー:
型の不一致は: デッキにCardClassからStringに変換することはできません[i] [j]は新しいCardClass(i、j)を=。
型の不一致は:行うにはどのような:(デッキ[ "ハート"]文字列){
ため でintに文字列から変換することができませんか?私はこれでかなり初心者で、2次元配列のカードをプリントアウトする特定のスーツを選ぶことしか考えられないので、心を選んだ。
エラーが一目瞭然です。 DeckClassのデッキがString [] []タイプの場合、そこにあるCardClassへの参照を設定することはできません。別の問題は、デッキは配列なので、deck ["hearts"]のように使うことはできません。デッキ[2]のようなインデックスを使用する必要があります。デック[2] [2] 。 – zbyszekt
'public static String [] [] deck'を' public static CardClass [] [] deck'に変えてみてください。 – Sedrick
しかし、デッキの種類をCardClassに変更した後は、printDeckメソッドでもう印刷できません。私もそれをキャストすることはできません。ご回答有難うございます。 – Afrim124