Как вызвать метод в другом классе, когда заданное имя класса является строкой - PullRequest
2 голосов
/ 13 марта 2019

У меня есть два класса в Java. Я вызываю метод 2-го класса из 1-го класса, когда имя 2-го класса хранится в строковой переменной. Я попробовал приведенный ниже код. Он создает класс.

String adapterClass = "com.appzillon.server.impl.ViewAccDtlsAdapterImpl";
Class className = Class.forName(adapterClass);

После этого как вызывать метод. Имя метода - getInfo с параметром строкового типа.

Ответы [ 2 ]

1 голос
/ 13 марта 2019
Method method = className.getDeclaredMethod("getInfo", String.class);
method.invoke(instance, "your parameter");

Где instance является либо:

Object instance = null;

если метод статический. Или:

Object instance = className.getDeclaredConstructor().newInstance();

Если метод является методом-членом

0 голосов
/ 13 марта 2019

Для подобных сценариев вы можете очень хорошо использовать API Reflection Java. Class classInstance = Class.forName(<your class name>); Methoed methodHandle = classInstance.getMethod(<methodName>,<arguments classes>); Object returnValue = methodHandle.invoke(null, "parameter-value1");

Примечание: нулевой параметр - это объект, для которого вы хотите вызвать метод.Если метод статический, вы указываете null вместо экземпляра объекта

...