Javaで標準的なカード/デッキクラスを作成すると悪い時があります。私はいくつかの同様の質問&答えを読んだが、どちらかrelatable /有用ではないか、私はまだそれを理解することはできません。 ここCards.set(Cards.java:13)の "メイン" スレッドでコードNullPointerException、調査後でも理由を見つけることができない
public class Cards {
boolean isAvailable;
int card_id;
static final int AC = 32;
public Cards [] deck = new Cards[AC];
public void set() {
int a = 0;
for (int i = 0; i < AC; i++) {
if(a == 4) a = 0;
deck[i].isAvailable = true; // <---------
deck[i].card_id = i + (a * 101); // <---------
a++;
}
}
public void read() {
for (int i = 0; i < AC; i++)
System.out.println(deck[i].isAvailable + " " + deck[i].card_id);
}
public static void main (String[] args) {
Cards c = new Cards();
c.set();
c.read();
}
}
例外java.lang.NullPointerExceptionが
Cards.mainで
'S(Cards.java:24)
1. 私は同様の問題について読み、その問題は、配列の初期化にすることができ、私は私のPROGと同じことをしようとしましたが、それはとにかく悪い行ったことがわかりました。
私は13行目と14行目がポイントされています(チェックのために13行目をコメントすると、次の行にポインターセットをコメントします)。
2. 私はあなたから取得したいと思い、ヘルプの次の部分がある: (トレーニング目的のために)メインがあるにもかかわらず、私は(ちょうどデッキを作成します)、このクラスを使用して他のクラスを参照してくださいので、私は私が勝ったと思いますメインを必要としているのではない...最初のポイントでprobsのほかにすべてがうまく設定されているか?
* *アレイの初期化に関して「同じことをやろうとしましたか?あなたが 'deck [i]'に値を設定したところはどこにもありません... –
あなたのコードにバグがあるときは、あなたのデバッガを使うことをお勧めします。それが何のためだ。 –
「カード」は、カードのコレクションとして「カード」から1枚のカードとして分けることをお勧めします。現在のところ、各カードには52個のカードが配列されており、意味がありません(特に、それぞれのカードに52個のカードなどがあります)。 –