У меня есть метод, определенный с вар аргNoSuchMethodError при вызове метода с вар арг
public static void myMethod(String sourceClass, String sourceFunction,
String message, Object... args) {
}
Я называю этот метод двумя способами.
myMethod(className, methodName, "List of all users : {}", userLists);
myMethod(className, methodName, "consumers of reqID : {} are : {}", reqID, userLists);
я не получил какой-либо ошибки компиляции, но во время выполнения, я получил ниже ошибки для второго вызова метода в то время как первый вызов метода выполнен успешно.
java.lang.NoSuchMethodError: com.example.MyClass.myMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V at
UPDATE
После отладки, я мог бы иметь возможность проследить причину и устранить ее.
'myMethod' относится к разной тематике. , когда я скомпилировал код приложения, существовал еще один нижеперечисленный метод наряду с вышеупомянутым.
public static void myMethod(String processName, String sourceClass, String sourceFunction,
String message, Object... args) {
}
Позже этот перегруженный метод удаляется и регенерирует банку и эта окончательная версия добавляется в войне П.
Фикс Я сделал это:
Я снова скомпилирован мой код приложения с этой окончательной версии и она решена.
Просто используйте один объект переменной длины. Вы можете проверить длину и позже нарисовать –
напечатать больше своего стека и добавить код в стек, который вызывает myMethod – andy
Эта ошибка означает, что вы работаете с другой версией класса, чем версия, скомпилированная вами. – VGR