Как получить все типы внутренних структур вложенного типа? - PullRequest
0 голосов
/ 02 марта 2020

У меня есть функция ниже,

public void park( List<List< List< Integer>>> l){ System.out.println("park"); }

, и когда я попытался использовать Method.getParameters () + Parameter.getParameterizedType (), я получил

 java.util.List< java.util.List<java.util.List<java.lang.Integer>>>>

Но я необходимо получить тип внутренней стороны вложенной структуры, скажем, java .util.List > и Integer . Когда я получаю это, я использую getAnnotationsByType, чтобы получить все аннотации внутренних структур.

Я подумал использовать Parameter.getParameterizedType (). ToString () для анализа вложенной структуры, но даже если я это сделаю, я не думаю, что строку типа можно преобразовать в Type.

Можно ли получить внутренние типы вложенной структуры? Все ценится.

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете получить эту информацию через интерфейс ParameterizedType.

Например:

final Type parameterType = method.getGenericParameterTypes()[0]; // List<List<List<Integer>>>

if (parameterType instancof ParameterizedType) {
    final Type nextDown // List<List<Integer>>
        = ((ParameterizedType) parameterType).getActualTypeArguments();
}

И повторять до тех пор, пока она не станет , а не a ParameterizedType .

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