JAVA Type之GenericArrayType泛型数组

JAVA Type之GenericArrayType泛型数组

Scroll Down

Java类型之GenericArrayType 泛型数组

泛型数组,描述的是形如:A[]或T[]类型。

源码

public interface GenericArrayType extends Type {
    //获得这个数组元素类型,即获得:A<T>(A<T>[])或T(T[])
    Type getGenericComponentType();
}

概述

GenericArrayType,泛型数组,描述的是ParameterizedType类型以及TypeVariable类型数组,即形如:classA<T>[][]T[]等,是Type的子接口。

getGenericComponentType()

获取泛型数组中元素的类型,要注意的是:无论从左向右有几个[]并列,这个方法仅仅脱去最右边的[]之后剩下的内容就作为这个方法的返回值

public class GetGenericComponentTypeTest<K> {
    ClassA4<K>[][] key1;
    ClassA4<K>[] key2;

    public static void main(String[] args) throws NoSuchFieldException {
        Type type = GetGenericComponentTypeTest.class.getDeclaredField("key1").getGenericType();
        if (type instanceof GenericArrayType) {
            System.out.println("Key1=" + ((GenericArrayType) type).getGenericComponentType());
        }
        type = GetGenericComponentTypeTest.class.getDeclaredField("key2").getGenericType();
        if (type instanceof GenericArrayType) {
            System.out.println("Key1=" + ((GenericArrayType) type).getGenericComponentType());
        }
    }
}

class ClassA4<K> {

}

结果:

Key1=com.hb0730.test.ClassA4<K>[]
Key1=com.hb0730.test.ClassA4<K>

系列

  1. ParameterizedType 泛型/参数化类型【重要】
  2. TypeVariable 类型变量/泛指任何类【掌握】
  3. GenericArrayType (泛型)数组类型
  4. WildcardType 通配符(泛型)表达式

作者:a327369238
链接:https://blog.csdn.net/a327369238
来源:csdn