Получаваме NoSuchMethodError в един от нашите класове на прост метод за получаване. Странното е, че можем да отстраняваме грешки в кода и да видим възникването на грешка в дебъгера (като преминем през съответния ред), но можем също да използваме IDE (IntelliJ IDEA), за да видим, че методът наистина съществува.
Извършването на xxxx.getYYY()
оценява добре чрез оценителя на IDE изрази. И отивайки xxxx.getClass().getMethods()
можем да видим метода getYYY()
в списъка. Опитахме да изчистим всички вградени файлове, IDE изходни директории, IDE кешове, рестартиране и т.н. и изглежда нищо не помага.
Бих разбрал, че NoSuchMethodError ще се случи, ако бяхме компилирали срещу нещо, но след това по време на изпълнение беше намерен различен Jar/клас. Но това не ми обяснява защо по време на изпълнение, докато дебъгваме във въпросния ред, можем да видим, че методът е там, но прекрачването на реда хвърля изключението.
Опитах да възпроизвеждам на друга машина, но не се възпроизвежда.
Някой има ли представа какво може да се случва тук?
Вашата основна функция се нуждае от този точен подпис:
- person Mike Q   schedule 22.06.2011int main(int, char**)