Java: NullPointerException が発生する
今日Javaを始め, ボウリングスコアプログラムを作成しています.
ある程度コーディングしたのですが, 例外が発生して進めません.
原因と解決法がわからず困っています.どなたか回答お願いします
ソース(一部省略):
Game.java
----------
public class Game {
public static void main(String[] args) {
Frame[] frame = new Frame[10];
NullFrame nulframe = new NullFrame();
LastFrame frame10 = new LastFrame();
ArrayList<Frame> frames = new ArrayList<Frame>();
frames.add(nulframe);
for (int i = 1 ; i < 10 ; i++) {
frames.add(frame[i]);
}
frames.add(frame10);
if(args.length >= 1) {
System.out.println("Input Score From: "+args[0]);
fin.makeScoreArray(args[0]);
} else {
for(int i = 1; i < 10 ; i++) {
if (i == 1) {
frame[i].setPrevFrame(nulframe); // エラー発生
} else {
frame[i].setPrevFrame(frame[i-1]);
}
if (i >= 9) {
frame[i].setNextFrame(frame10);
} else {
frame[i].setNextFrame(frame[i+1]); // エラー発生
}
int m = frame[i].getThrowableNum(); // エラー発生
for(int j = 0 ; j < m ; j++) {
if((frame[i].getThrowScore(j)) >= 10) break; // エラー発生
board.display();
}
}
}
}
}
----
Frame.java
----
public class Frame implements FrameScore{
private static final int ONE_MORE = 1;
private static final int TWO_MORE = 2;
private static final int CLOSED = 0;
private static final int THROWNUM = 2;
private int[] score_;
private int ftotal_;
public int total_;
private int status_;
Frame prev_;
Frame next_;
public Frame () {
score_ = new int[2];
score_[0] = -1;
score_[1] = -1;
prev_ = null;
next_ = null;
}
public Frame(int[] score_, int total_, int status_) {
this.score_[0] = score_[0];
this.score_[1] = score_[1];
this.status_ = status_;
this.prev_ = prev_;
this.next_ = next_;
}
public void setPrevFrame(Frame f){
prev_ = f;
}
public void setNextFrame(Frame f){
next_ = f;
}
public int getThrowableNum() {
return THROWNUM;
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
Frame[] frame = new Frame[10];
でFrame型の配列を宣言していますが、
宣言のみ(箱だけ用意)しかしていないのでframe[i].・・・とメソッドにアクセスするとNullPointerが発生しているのだと思います。
for (int i = 1 ; i < 10 ; i++) {
frames.add(frame[i]);
}
ここでリストに追加しているframe[i]も全て初期状態ですのでframes.get(1)とかで取り出したFrameクラスもnullになっているはずです。
箱を用意したら実体を格納してあげて下さい。
frame[i] = new Frame();
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TextAreaでの文字の色
-
java junit list同士の比較方法
-
ArrayListの使い方について(初...
-
JavaのswingでCardLayoutの画面...
-
javaで文字数制限するには?
-
JButton-背景の透明化
-
連番をオブジェクト名の最後に...
-
JFrameとJPanelの最大化について
-
Buttonを押すと画像が表示され...
-
JDialogを閉じた時の処理
-
TABキーの検出
-
JPanelの切り替えと再描画
-
JTableの列ヘッダ
-
質問 No.321331 「ノードの削除...
-
整数を好きなだけ入力し、個数...
-
Javaでお絵描きソフトを作りた...
-
EXECLの行を削除
-
あるコンボボックスを選択する...
-
Log4jで機能毎に別ファイルへ出...
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
コンパイルエラー <identifier...
-
JPanelの重ね方/OverlayLayout他
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
JTable の 列幅を個別に設定す...
-
VB6.0でのTextboxの高さ変更
-
ボタンクリック後パネルを再描...
-
ArrayListの使い方について(初...
-
JavaでのSwingを使った簡易電卓...
-
連番をオブジェクト名の最後に...
-
あるコンボボックスを選択する...
-
Buttonを押すと画像が表示され...
-
KeyListenerの使い方について
おすすめ情報