Обновить

Комментарии 4

Нельзя получить Class для параметризованного типа

package tests;

import java.lang.reflect.ParameterizedType;
import java.util.List;

public class GenExample {
    public List<String> strings;

    static void main() {
        var example = new GenExample();
        example.test();
    }

    private void test() {
        try {
            var field = GenExample.class.getField("strings");
            var type = (ParameterizedType) field.getGenericType();
            System.out.println(type.getActualTypeArguments()[0]);
        } catch (NoSuchFieldException e) {
            throw new RuntimeException(e);
        }
    }
}

// out: class java.lang.String

Объект Class для List получить нельзя, а информацию о том, что поле было объявлено как List, получить можно. Надо переписать этот пункт, чтобы было точнее, сейчас подумаю, как.

Да! Писал как-то такой код в тестах :-)

Вероятно, стоило отдельно написать про метаданные. Готово

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации