Получил NoSuchMethodError в одном из наших классов с помощью простого метода получения. Странно то, что мы можем отлаживать код и видеть, что ошибка возникает в отладчике (переходя через соответствующую строку), однако мы также можем использовать IDE (IntelliJ IDEA), чтобы увидеть, что метод существует.
Выполнение xxxx.getYYY()
хорошо оценивается с помощью оценщика выражений IDE. И переходя xxxx.getClass().getMethods()
, мы можем увидеть метод getYYY()
в списке. Мы пытались очистить все встроенные файлы, выходные каталоги IDE, кеши IDE, перезагрузить компьютер и т. д., но ничего не помогает.
Я бы понял, что NoSuchMethodError произойдет, если мы скомпилируем что-то, но тогда во время выполнения будет найден другой Jar/класс. Но это не объясняет мне, почему во время выполнения при отладке рассматриваемой строки мы видим, что метод есть, но переход по строке вызывает исключение.
Пробовал воспроизводить на другой машине, но не воспроизводится.
Кто-нибудь знает, что здесь может происходить?