Вам, вероятно, нужно быть немного умнее в поиске того, какой метод вызывать.Один из вариантов - выполнить итерацию по каждому методу из getDeclaredMethods()
, сначала проверив имя метода, чтобы убедиться, что это тот метод, который вы хотите вызвать, а затем проверив, совпадает ли число фактических параметров с числом формальныхпараметров, и, наконец, если оба они истинны, перебирая фактические параметры и проверяя, можно ли назначить класс параметров из класса формальных параметров.
Однако одна проблема заключается в том, что происходит, если у вас есть методы:
public void setParameter(String name, Object value);
public void setParameter(String name, String value);
, поскольку оба будут соответствовать этому тесту.
Я не знаю ни одной библиотеки верхней части моей головы, которая могла бы справиться с этим легким способом.Хотя большинство фреймворков для внедрения зависимостей (Spring, Guice) имело бы некоторую поддержку для своих нужд, и, возможно, стоит посмотреть, как они работают.
ответ Джона Скита здесь имеетпример того, что я объясняю.