private static Type fixGenericArray(Type var0) {
if (var0 instanceof GenericArrayType) {
Type var1 = ((GenericArrayType)var0).getGenericComponentType();
var1 = fixGenericArray(var1);
if (var1 instanceof Class) {
return Array.newInstance((Class)var1, 0).getClass();
}
}
return var0;
}
最近在研究Java泛型的时候碰到这个方法, 但是想了半天也不知道这个方法到底有什么用.
能够成为泛型数组componentType的只有以下这几种类型(这里的List和String只是作为例子): T, List<T>, List<String>, 即ParameterizedType和TypeVariable, 而不可能是原始类型, 因为形如String[]或者多维数组String[][]等形式, 它本身就不属于GenericArrayType, 而是Class. 所以, 以上代码到底有什么用?