У меня есть метод, определенный с помощью var args
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
ОБНОВЛЕНИЕ
После отладки я смог отследить причину и исправить ее.
myMethod принадлежит другому jar. когда я скомпилировал код своего приложения, помимо упомянутого выше был еще один перегруженный метод.
public static void myMethod(String processName, String sourceClass, String sourceFunction,
String message, Object... args) {
}
Позже этот перегруженный метод удаляется и регенерирует jar, и эта окончательная версия добавляется в war pom.
Я сделал следующее исправление:
Я снова скомпилировал код своего приложения с этой последней версией, и проблема решена.