Как вызвать метод после другого метода? - PullRequest
0 голосов
/ 01 мая 2018

Допустим, у меня есть следующий код:

Method myMethod = Entry.class.getDeclaredMethod("get" + criteria);
entries.get(index).getPort();

Я бы хотел заменить метод getPort на отраженный метод "myMethod". Как я могу вызвать отраженный метод после другого метода? (records.get (index) в этом случае)

Вероятно, это действительно простой вопрос, но я искал везде и не нашел ответа.

1 Ответ

0 голосов
/ 01 мая 2018

Из документации:

Reflection предоставляет средства для вызова методов класса. Как правило, это будет необходимо, только если невозможно привести экземпляр класса к нужному типу в неотражающем коде. Методы вызываются с помощью java.lang.reflect.Method.invoke (). Первый аргумент - это экземпляр объекта, для которого этот конкретный метод должен быть вызван. (Если метод является статическим, первый аргумент должен быть нулевым.) Последующие аргументы являются параметрами метода. Если базовый метод генерирует исключение, он будет обернут java.lang.reflect.InvocationTargetException. Исходное исключение метода может быть получено с использованием метода InvocationTargetException.getCause () механизма сцепления исключений.

В вашем случае:

myMethod.invoke(entries.get(index), null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...