単純なgetterメソッドのクラスの1つでNoSuchMethodErrorを取得しています。奇妙なことに、コードをデバッグして、デバッガーでエラーが発生することを確認できます(関連する行をステップオーバーすることにより)が、IDE(IntelliJ IDEA)を使用してメソッドが存在することを確認することもできます。
xxxx.getYYY()
実行すると、IDE式エバリュエーターを介して正常に評価されます。そして、リストにメソッドxxxx.getClass().getMethods()
が表示されます。getYYY()
ビルドされたすべてのファイル、IDE出力ディレクトリ、IDEキャッシュ、再起動などをクリーンアップしようとしましたが、何も役に立たないようです。
何かに対してコンパイルした場合にNoSuchMethodErrorが発生することは理解できますが、実行時に別のJar/クラスが見つかりました。しかし、それは私に理由を説明していません。実行時に問題の行にデバッグしているときに、メソッドがそこにあることがわかりますが、行をステップオーバーすると例外がスローされます。
別のマシンで再生しようとしましたが、再生されません。
ここで何が起こっているのかについて誰かが洞察を持っていますか?