[解決済み] スレッド "main "でのExceptionを解決するにはどうすればよいですか java.lang.NullPointerException エラー [duplicate].
2022-03-12 07:55:56
質問
Javaプログラムでトラブルが発生しました。スレッド "main"で例外が発生します。
java.lang.NullPointerException
at twoten.TwoTenB.<init>(TwoTenB.java:29)
at javapractice.JavaPractice.main(JavaPractice.java:32)
Java Result: 1
というエラーが出ています。私はこの場所で何時間も立ち往生しているので、私は本当にいくつかの助けを必要とする...
package twoten;
import java.util.Scanner;
public class TwoTenB {
public TwoTenB() {
double percentage;
double a[] = null;
double total = 0;
double var;
System.out.print("\tRESULT\n\n");
Scanner scan = new Scanner(System.in);
//double[] mark = new double[7];
for (int i = 0; i < 7; i++) {
System.out.print("\nMarks in subject " + (i + 1) + "\t:\t");
var = scan.nextDouble();
a[i] = var;
total = total + a[i];
//percentage = first * second * third * fourth * fifth * sixth * seventh * 100 / 700;
}
percentage = total * 100 / 700;
if (a[0] > 35 && a[1] > 35 && a[2] > 35 && a[3] > 35 && a[4] > 35 && a[5] > 35 && a[6] > 35 && percentage > 35) {
if (percentage >= 60) {
System.out.print("\nCongratulation!!! you've got FIRST dividion\n");
} else if (percentage >= 45 && percentage < 60) {
System.out.print("\nCongratulation!!! you've got SECOND dividion\n");
} else if (percentage >= 35 && percentage < 45) {
System.out.print("\nCongratulation!!! you've got THIRD dividion\n");
}
} else {
System.out.print("\nSORRY!!! you've FAILED\n");
}
}
}
解決方法は?
これは問題です
double a[] = null;
以降
a
は
null
,
NullPointerException
は、初期化するまでは使うたびに発生します。だから、これ。
a[i] = var;
は失敗します。
解決策として考えられるのは、宣言時に初期化することです。
double a[] = new double[PUT_A_LENGTH_HERE]; //seems like this constant should be 7
この例外を解決することよりも重要なのは、IMOが学ぶべき事実である。 読む スタックトレースと 理解する そうすれば、問題を発見し、解決することができます。
<ブロッククオートjava.lang.NullPointerException
この例外は、変数に
null
の値が使用されています。解決方法は?ただ、その変数が
null
を使用します。
at twoten.TwoTenB.(TwoTenB.java:29)
この行は2つの部分に分かれています。
-
まず、エラーが発生したクラスとメソッドを表示します。この場合、エラーが発生したのは
<init>
メソッド クラス内TwoTenB
パッケージで宣言twoten
. でエラーメッセージが発生した場合SomeClassName.<init>
これは、コンストラクタの実行など、クラスの新しいインスタンスを作成する際にエラーが発生したことを意味します (この場合は、それが問題だったようです)。 -
次に、エラーが発生したファイルと行番号を( )で囲んで表示します。こうすることで、エラーが発生した場所を特定しやすくなります。つまり、ファイルTwoTenB.javaの行番号29を調べる必要があります。これはどうやら
a[i] = var;
.
この行から、他の行も同様にして、どこでエラーが発生したかを教えてくれます。ですから、これを読むと
at javapractice.JavaPractice.main(JavaPractice.java:32)
をインスタンス化しようとしたということです。
TwoTenB
オブジェクトの参照を
main
メソッドを作成します。
JavaPractice
で宣言されている
javapractice
パッケージに格納されます。
関連
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] スタックトレースを文字列に変換するにはどうすればよいですか?
-
[解決済み] 残念ながらMyAppは停止してしまいました。どうすればよいですか?
-
[解決済み] 現在のスレッドがメインスレッドでないことを確認する方法
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】静的なMapを初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java Exceptionが発生しました エラー解決
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
ファインバグタイプ
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
Spring Boot による HTTPS アクセスの設定
-
JQuery DataTable 详解
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み】NullPointerExceptionとは何ですか、そしてどのようにそれを修正すればいいですか?