Java 获取List的泛型类型

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class Test {

    public static void main(String[] args) throws NoSuchFieldException {
        Class clazz = A.class;
        Field field = clazz.getField("list");
        ParameterizedType type = (ParameterizedType) field.getGenericType();
        Stream.of(type.getActualTypeArguments()).forEach(System.out::println);

        field = clazz.getField("list1");
        type = (ParameterizedType) field.getGenericType();
        Stream.of(type.getActualTypeArguments()).forEach(System.out::println);
    }

    class A {
        public List<? extends String> list = new ArrayList<>();

        public List<Integer> list1 = new ArrayList<>();
    }

}

结果:

extends java.lang.String
class java.lang.Integer

猜你喜欢

转载自blog.csdn.net/m0_67393827/article/details/126724225