Get Return Тип метода, который возвращает ArrayList <> через Reflection - PullRequest
0 голосов
/ 03 марта 2020

Мне нужно иметь возможность получить класс / тип Object, присутствующий в ArrayList<TYPE>, возвращенный Method method через отражение.

При вызове:

Class<?> methodReturnType = method.getReturnType();
System.out.println("Method return type: " + methodReturnType);

для метода, который возвращает ArrayList<String> Я получаю:

class java.util.ArrayList

, который не включает информацию о типе generi c : String.

Я полагаю, что этот вопрос, возможно, был решен здесь и здесь однако я вижу, что если я позвоню:

Type genericReturnType = method.getGenericReturnType();
System.out.println("Generic return type (name): " + genericReturnType.getTypeName());

Это печатает:

java.util.ArrayList<java.lang.String>

Что говорит о том, что можно знать, что ArrayList<> содержит Object типа String.

Очевидно, я мог бы извлеките String из текста: <java.lang.String> с помощью регулярных выражений, но это не идеально.

Чего мне не хватает? Можно ли получить тип ArrayList<> метода, который возвращает ArrayList<TYPE> во время выполнения с помощью отражения? Если нет, то как genericReturnType.getTypeName() печатает правильный тип (String)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...