Javaでコンパイル時に次のようなエラーが出たことはありませんか?
error: cannot find symbol
この記事では、
- cannot find symbol の意味
- よくある原因
- 正しい解決方法
を初心者向けにわかりやすく解説します。
✅ 結論:存在しない名前を使っている
cannot find symbol は、
「その名前は見つかりません」
という意味です。
変数名・メソッド名・クラス名などが間違っていると発生します。
よくある原因①:スペルミス
String name = "Taro";
System.out.println(neme);
name を neme と書いてしまっています。
このようなスペルミスで cannot find symbol が発生します。
よくある原因②:変数を宣言していない
System.out.println(age);
age を宣言していない場合もエラーになります。
正しい書き方
int age = 20;
System.out.println(age);
よくある原因③:import していない
List<String> list = new ArrayList<>();
List や ArrayList を import していない場合、
cannot find symbol が出ることがあります。
解決方法
import java.util.List;
import java.util.ArrayList;
を追加します。
よくある原因④:スコープの問題
if (true) {
int number = 10;
}
System.out.println(number);
number は if ブロックの中だけで有効です。
外では使えません。
解決のチェックリスト
cannot find symbol が出たら、次を確認しましょう。
- スペルは正しいか?
- 変数やメソッドを宣言しているか?
- import を書いているか?
- スコープの外で使っていないか?
まとめ
- cannot find symbol は「その名前は見つからない」という意味
- スペルミスや未宣言が原因のことが多い
- import やスコープも確認する
このエラーが出たら、
「名前が正しく存在しているか」
をまず確認しましょう。

コメント