Информация аннотации метода ссылки интерфейса - PullRequest
0 голосов
/ 09 мая 2018

Я хочу извлечь информацию аннотации для ссылки на метод интерфейса следующим образом:

giveMeAnnotaions(ControllerInterface::get)

Возможно ли это?

1 Ответ

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

номер

Подумайте, как бы вы объявили такой метод. Переданный метод может иметь любую подпись. Какой функциональный интерфейс вы собираетесь использовать, чтобы он принимал все подписи? Нет такого функционального интерфейса.

Даже если вы скажете: «Я просто приму один вид подписи», вы все равно не сможете этого сделать. Какой бы функциональный интерфейс вы ни использовали, вы не сможете «увидеть», что делает функциональный интерфейс. Это как черный ящик, принимающий ваши входные данные и разделяющий некоторые выходные данные. Вы не знаете, что внутри во время выполнения.

Чтобы написать метод, который возвращает аннотации метода, у вас должен быть объект Method, который можно получить из Class<T>, String и массив Class для типов параметров:

public static Annotation[] getAnnotations(Class<?> clazz, String methodName, Class<?>... parameterTypes) throws ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...