1 GenericArrayType 接口的继承关系

这个接口表示泛型类型的数组,直接这样说可能不是很清晰,看下面的讲解

2 GenericArrayType 中的方法含义

1
2
3
4
public interface GenericArrayType extends Type {
    /** 获得数组元素类型,其中包含泛型相关的信息 */
    Type getGenericComponentType();
}

3 举个例子

1
2
3
4
5
6
7
8
9
public class Main {
    private Map<String, Integer>[] mapArray;
    @Test
    public void testGetGenericComponentType() throws NoSuchFieldException {
        Field mapArrayField = Main.class.getDeclaredField("mapArray");
        Type mapArrayType = mapArrayField.getGenericType();
        GenericArrayType genericArrayType = (GenericArrayType) mapArrayType;
    }
}

下图为断点查看的结果,可以很清晰的看到 genericArrayType 中存储了 mapArray 的泛型信息和原来的类型

参考文章

  1. 我眼中的 Java-Type 体系 (2)