プログラミング/意味の分かりにくいエラー

出典: CourseWiki

意味のわかりにくいエラー

Javaプログラミングで出会うエラーで,意味が分かりにくいものです. なお,このエラーはjavacが出力するもので,Eclipseを使っている場合は別の表現になります.

メッセージ意味
\12288 は不正な文字です全角の空白文字が入っている
シンボルを解釈処理できません

コンパイラがそのシンボル(変数名等)を理解できなかった. 作られていない変数を使おうとした場合が多い.

  • そのシンボルがクラス名の場合 → import 文を忘れている可能性がある.
  • シンボル: 変数 Keyboard の場合 → Keyboard.class がそのディレクトリにない.
java.lang.NoClassDefFoundError: XXX

java XXX として実行したときに,XXX.class が存在しない.

  • コンパイルし忘れている.
  • クラス名のスペルミス.
  • 環境変数 CLASSPATH の設定に問題 (カレントディレクトリの .class ファイルを実行するには CLASSPATH に . が含まれる必要がある)
'class' または
'interface' がありません
おそらく閉じかっこ } が多すぎる.
互換性のない型

検出値: int
期待値: boolean
    if (a = b) {

ifやwhileの条件式の所で,比較を == ではなく = で書いている.
精度が落ちている可能性

検出値: double
期待値: int
    a = b;

なんらかの値を,精度が低い変数に代入しようとした.(double型をint型に代入した等)
変数 XXX は初期化されていない可能性があります。変数XXXが代入される前に使用される可能性がある.
int a;
if (...) {
  a = 10;
}
System.out.println(a);

上のようなプログラムで,if文の条件が偽だった場合, aに代入されることなくSystem.out.printlnが実行されてしまうということに対する警告.

ナビゲーション