【Java初心者向け】「シンボルを見つけられません」とは?エラーの意味・原因・解消方法

Javaでプログラミングをしていると「シンボルを見つけられません」というエラーが発生することがあります。

本記事では、プログラミング初心者の方向けに、未経験者向け無料プログラミングスクール「アキバ・テックドリーム・アカデミー」(以下、テクドリ)の講師が、このエラーの意味や発生原因、解消方法について分かりやすく解説します。

「シンボルを見つけられません」とは

「シンボルを見つけられません」とは、特定のシンボルが見つからない場合に発生する例外です。
ここでの「シンボル」とは識別子とほぼ同じ意味で使われ、変数・メソッド・クラスなどを指します。

「シンボルを見つけられません」が発生するのは下記のような場合です。

  • シンボルのスペルミス
  • シンボルがスコープの範囲外
  • 使用するクラスのimport記載漏れ

例外については詳しくは別の記事で解説しています。

関連記事

プログラミングを始めたばかりの方にとって、「例外」という言葉は少し難しく感じるかもしれません。 しかし、例外はプログラムの動作を正しく理解し、扱うために欠かせない重要な概念です。 簡単に言えば、例外とは、プログラムが予期しない事態に[…]

発生例・解消方法

シンボルのスペルミスの場合

シンボルとなる変数・メソッド・クラスなどがスペルミスをしている場合「シンボルを見つけられません」が発生します。

ここでは、addメソッドがスペルミスをしているので、該当箇所を修正します。

例外が発生するサンプルコード

class Test {
  public static void main(String[] args) {

    int num1 = 5;
    int num2 = 10;

    //メソッド名にdが1つ足りない
    ad(num1, num2);
  }

  public static void add(int num1,int num2) {

    System.out.print(num1 + num2);
  }
}
実行結果
Test.java:6: エラー: シンボルを見つけられません
    ad(num1,num2);
    ^
  シンボル:   メソッド ad(int,int)
  場所: クラス Test
エラー1個

解消例

class Test {
  public static void main(String[] args) {

    int num1 = 5;
    int num2 = 10;

    //足し算をするaddメソッド呼び出し
    add(num1, num2);
  }

  public static void add(int num1,int num2) {

    System.out.print(num1 + num2);
  }
}
実行結果
15

シンボルがスコープの範囲外

シンボルがスコープの範囲外にある場合「シンボルを見つけられません」が発生します。

ここでは、if文内で初期化しているint変数の「result」をif文外で使用しているため、対象の変数をif文外で初期化します。

例外が発生するサンプルコード

class Test {
  public static void main(String[] args) {

    int num1 = 10;
    int num2 = 5;

    // num1、num2どちらも0でなければ乗算
    if (num1 != 0 && num2 != 0) {
      int result = num1 * num2;
    }

    System.out.println(result);
  }
}
実行結果
Test.java:12: エラー: シンボルを見つけられません
    System.out.println(result);
                       ^
  シンボル:   変数 result
  場所: クラス Test
エラー1個

解消例

class Test {
  public static void main(String[] args) {

    int num1 = 10;
    int num2 = 5;
    
    //if文の外で初期化する
    int result = 0;

    //num1、num2どちらも0でなければ乗算
    if (num1 != 0 && num2 != 0) {
      result = num1 * num2;
    }

    System.out.println(result);
  }
}
実行結果
50

使用するクラスのimport記載漏れ

使用するクラスのimportの記載が漏れている場合「シンボルを見つけられません」が発生します。

対象クラスを読み込むimport文を追加します。

例外が発生するサンプルコード

class Test {
  public static void main(String[] args) {

    List list = new ArrayList();

    list.add("アキバ ");
    list.add("テックドリーム ");
    list.add("アカデミー");

    for (String str : list) {
      System.out.print(str);
    }
  }
}
実行結果
Test.java:5: エラー: シンボルを見つけられません
    List list = new ArrayList();
    ^
  シンボル:   クラス List
  場所: クラス Test
Test.java:5: エラー: シンボルを見つけられません
    List list = new ArrayList();
                            ^
  シンボル:   クラス ArrayList
  場所: クラス Test
エラー2個

解消例

//import文追加
import java.util.ArrayList;
import java.util.List;

class Test {
  public static void main(String[] args) {

    List list = new ArrayList();

    list.add("アキバ ");
    list.add("テックドリーム ");
    list.add("アカデミー");

    for (String str : list) {
      System.out.print(str);
    }
  }
}
実行結果
アキバ テックドリーム アカデミー

「シンボルを見つけられません」のまとめ

今回は、「シンボルを見つけられません」というエラーについて解説しました。

「シンボルを見つけられません」は、下記のような場合に発生します。

  • シンボルのスペルミス
  • シンボルがスコープの範囲外
  • 使用するクラスのimport記載漏れ

エラーメッセージ内に対象のシンボルや場所が記載されています。
記載箇所に注目して、シンボルがなぜ見つからないのか原因を見つけて修正しましょう。

まずは無料説明会・体験セミナー

テックドリームは無料のプログラミングスクールです。「プログラマってどういう仕事?」「自分にできるのかな?」という方も、まずは体験セミナーでプログラミングに触れてみませんか?テックドリームは未経験の方を丁寧にサポートする体制をご用意しています。不安なことや、入校までの疑問点なども気軽にご相談いただけます。

Webかんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

Webかんたん予約ができない場合や、ご質問がございましたら、お気軽にお電話ください。

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>テクド・リム

テクド・リム


「テクドリ」の公式キャラクター。
エンジニアだった父の影響を受けて、夢に向かって日々勉強に励むエンジニアのタマゴ。
夢は「世界を変える、すごいエンジニアになること!」

彼女が通うプログラミングスクールについては「テクドリとは」ページにて紹介中!

CTR IMG