Javaでシンボルが見つからないエラーを修正

Javaでシンボルが見つからないエラーを修正

この投稿では、Java のシンボルが見つかりませんエラーを修正する解決策を紹介します。 a i=4>。これは、コンパイラが識別子への参照を見つけられない場合に発生するコンパイル エラーです。幸いなことに、いくつかの簡単な提案に従ってエラーを修正できます。

Javaでシンボルが見つからないエラーを修正

Javaでシンボルが見つからないエラーを修正

Java で「シンボルが見つかりません」エラーを修正するには、次の提案に従ってください。

  1. 入力ミスをチェックする
  2. 未宣言または範囲外の変数
  3. インポートステートメントがありません

それでは、これらを詳しく見てみましょう。

1] 入力ミスをチェックする

まず、プログラム内に入力エラーがないか確認します。私たちの経験では、Java で「シンボルが見つかりません」エラーが発生する最も一般的な理由はタイプミスです。以下に例を示します。

public class TypoExample {
public static void main(String[] args) {
int number = 10;
System.out.println("The value is: "+ numer); // Typo 1
String greeting = "Hello, World!";
System.out.println(greetting); // Typo 2
}
}

出力:

TypoExample.java:5: error: cannot find symbol
System.out.println("The value is: "+ numer); // Typo 1
^
symbol: variable numer
location: class TypoExample
TypoExample.java:7: error: cannot find symbol
System.out.println(greetting); // Typo 2
^
symbol: variable greetting
location: class TypoExample
2 errors

Typo 1 では、number が numer と書かれていることがわかります。そして、タイプミス 2 では、挨拶は挨拶と書かれます。修正されたコードは次のとおりです。

public class TypoExample {
public static void main(String[] args) {
int number = 10;
System.out.println("The value is: "+ number); // Fixed typo 1
String greeting = "Hello, World!";
System.out.println(greeting); // Fixed typo 2
}
}

出力:

The value is: 10
Hello, World!

2] 未宣言または範囲外の変数

Java プログラムでシンボルが見つからないエラーは、宣言されていない変数またはスコープ外の変数が原因で発生することもあります。エラーを示す Java プログラムは次のとおりです。

public class ScopeDemo {
public static void main(String[] args) {
int x = 5;
System.out.println("The value is: "+ y); // Undeclared variable

// スコープ外の変数
if (x > 0) {
int z = 10;
}
System.out.println(“z の値は次のとおりです: “+ z); // スコープ外の変数
}
}

出力:

ERROR!
javac /tmp/v1FN2QQUVZ/ScopeDemo.java
/tmp/v1FN2QQUVZ/ScopeDemo.java:8: error: cannot find symbol
System.out.println("The value is: "+ y); // Undeclared variable
^
symbol: variable y
location: class ScopeDemo
/tmp/v1FN2QQUVZ/ScopeDemo.java:14: error: cannot find symbol
System.out.println("The value of z is: "+ z); // Out-of-scope variable
^
symbol: variable z
location: class ScopeDemo
2 errors

このコードでは、変数 y が適切な宣言なしで使用されています。また、変数 z は if ブロック内にあります。これにより、ブロックの外でアクセスするとスコープ外となり、「シンボルが見つかりません」エラーが発生します。修正されたコードは次のとおりです。

public class ScopeDemo {
public static void main(String[] args) {
int x = 5;
System.out.println("The value is: "+ x); // Fixed variable name

// 宣言を外側のスコープに移動しました
int z = 0;
if (x > 0) {
z = 10;
}
System.out.println(“z の値は次のとおりです: “+ z); // 変数スコープを固定
}
}

出力:

The value is: 5
The value of z is: 10

3] インポートステートメントが欠落しています

Java の import ステートメントは、単一のステートメントを使用して、パッケージ内の指定されたプログラムに対してクラスまたはすべてのクラスを表示できるようにするのに役立ちます。クラスまたはパッケージが適切にインポートされていない場合、Java で「シンボルが見つかりません」エラーが発生する可能性があります。エラーを示すサンプル プログラムは次のとおりです。

public class ImportDemo {
public static void main(String[] args) {
// Missing import statement for Scanner
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
int number = scanner.nextInt();
System.out.println("You entered: "+ number);
}
}

出力:

ERROR!
javac /tmp/v1FN2QQUVZ/ImportDemo.java
/tmp/v1FN2QQUVZ/ImportDemo.java:7: error: cannot find symbol
Scanner scanner = new Scanner(System.in);
^
symbol: class Scanner
location: class ImportDemo
/tmp/v1FN2QQUVZ/ImportDemo.java:7: error: cannot find symbol
Scanner scanner = new Scanner(System.in);
^
symbol: class Scanner
location: class ImportDemo
2 errors

ここでは、スキャナー クラスをインポートせずに使用しようとしています。 import ステートメント (つまり、「import java.util.Scanner」) を追加すると、プログラムが正常に実行されます。修正したものは次のとおりです。

import java.util.Scanner;

パブリック クラス ImportDemo {
public static void main(String[] args) {
// スキャナーのインポート ステートメントを修正しました
スキャナ Scanner = new Scanner(System.in);
System.out.print(“数値を入力してください: “);
int 数値 = scanner.nextInt();
System.out.println(“入力しました: “+ 数字);
}
}

出力:

Enter a number: 2
You entered: 2

これらの提案がエラーの修正に役立つことを願っています。

解決できないシンボルとは何ですか?

Java では、「シンボルを解決できません」エラーは、コード内で使用されている名前をコンパイラーが認識できないことを示します。通常、これはクラスをインポートできない場合、誤った入力ミス、またはクラスが存在しない場合に発生します。

不明なシンボル エラーは通常 Java を示しますか?

不明なシンボル エラーは、Java コンパイラが変数やメソッド名など、認識できないシンボルへの参照を検出した場合に発生します。これは、コードにタイプミスがあるか、スコープ内にないことを示します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です