【Can't resolve symbol エラー】もしかしてそれフィールドだったりしません...?
アホみたいだけどホントの話.
技術書を読んでいて出てくるコードのスニペット(一部分だけを切り出してあるあれね)を動かそうとすることがよくある.
で,IDE立ち上げて1,テキトーにパッケージ切って,クラス名はまあMain
でいっか,てな具合にMain.java
作って...で,写経をし始めると,怒られる.
Can't resolve symbol ~
だとさ.
あれ,このメソッドないんだっけ...?とAPIを確認しにいったり,写経ミスを疑ったりするのだけれども,わからない.
........
で,しばらくして気づいた.
あ,public static void main(String[] args)
(メインメソッド)の記述忘れて,ここフィールドじゃないすか...orz
ということで,メインメソッドをはじめに書く癖をつけましょう.
自分はMain
でクラスを作成するのでメインメソッドも作った気になってしまうのだと思います...
メインメソッドはたいていのIDEで自動補完がサポートされているはずなので,それを使いましょう.
IntelliJでは「psvm」と書いてEnterするだけです.
ちなみにメインメソッドを自力で書こうとして,例えばString[] args
を忘れるみたいなミスをすると,メインメソッドとして認識されないので,やはり自動補完がオススメです.(←これも経験あり...)
-
Java9以上なら「JShell使えばいいんじゃね?」という気もするが,ライブラリのパスを通して起動するのもめんどくさかったりするので…↩