私は Java の初心者で、読んだ概念のいくつかを適用するためのテスト コードを作成しています。そこで、トランプを説明するクラスを作成したいと思いました。カード クラスには、スイートと値の両方を記述するフィールドが含まれています (4 つのスイートすべてで 1 ~ 13)。ご覧のとおり、このクラスの作成は非常に簡単でした。
public class Card {
private String suite;
private int cardValue;
Card(String s, int cV){
this.suite = s;
this.cardValue = cV;
}
public String getSuite(){
return this.suite;
}
public int getCardValue(){
return this.cardValue;
}
}
このクラスをテストするために別のクラスを作成し、52 枚のカードを配列に追加しました (52 枚のカード デッキを処理する別のクラスがありますが、ここでの質問のコンテキストでは重要ではありません)。と呼ばれるこのクラスにCardTest
は、main メソッドが含まれています。すべてをデッキ配列に追加する for ループを作成しましたが、デッキをループしてカードの値 (スイートと値) を出力したいときに問題が発生します。NullPointException エラーが発生します。cardTest クラスは次のとおりです。
public class CardTest {
public static void main(String[] args){
Card[] temp = new Card[52];
for (int i = 0; i <12; i++){
temp[i] = new Card("Spade", i + 1);
temp[i+13] = new Card("Club", i + 1);
temp[i+26] = new Card("Diamond", i + 1);
temp[i +39] = new Card("Heart", i + 1);
}
for (int i = 0; i < 52; i++){
System.out.println(temp[i].getSuite());
}
}
}
このタイプのエラーに関する問題を検索しようとしましたが、収集した唯一のことは、Card オブジェクトがデフォルトの「null」値に設定され、メソッド呼び出しでエラーが発生するという問題があるということです。