多数の数値の配列 (整数として) をスキャンし、それらをシナリオ オブジェクトに格納するコードがあります。ただし、3499 番目のオブジェクト (3498 番目の J を出力) に到達すると、null ポインターでクラッシュします。最大配列サイズを探しましたが、インターネット上で 2^32-5 以外は見つかりませんでしたが、その制限に近づいていません。
in1scan = new Scanner(in1);
in2scan = new Scanner(in2);
scenario[] ret= new scenario[9999];
int j=0;
while (in1scan.hasNext()){
String[] input=(in1scan.next().split(",", 16));
ret[j]=new scenario();
for (int i=0; i<16;i++){
ret[j].input[i]=Integer.parseInt((input[i]));
}
j++;
}
j=0;
while (in2scan.hasNext()){
ret[j].correct=Integer.parseInt(in2scan.next()); //here things go wrong
j++;
System.out.println(j);
}
誰が何が悪いのか知っていますか?そして、はい、現在のラウンドアバウトの数値の受け入れ方法の代わりに nextInt を使用できることはわかっていますが、この方法で処理する必要がある機能をいくつか追加します。