Как отличить guish метод, перегруженный классом, используя Reflection, например:
method()
и method(int arg)
void invoke(Object object, String methodName, int id) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
object.getClass().getDeclaredMethod(methodName).invoke(object, int.class);
}
И вызов этой функции:
getV(new Object(), "method", 33);
И он возвращает ошибку java.lang.IllegalArgumentException: wrong number of arguments
, что означает, что метод без аргументов выбирается по умолчанию. Если я вызову метод без параметра int, он будет работать. Я спрашиваю, как отличить guish перегруженный метод? Я прочитал документы для Class.getDeclaredMethod
https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html Также есть старый пост на SO, но оба источника не отвечают на один и тот же вопрос Как найти перегруженный метод в Java? . Ofcourse Class.Object не имеет метода с методом name, я просто использовал его для примера.