这个方法有什么用? (com.sun.beans.TypeResolver#fixGenericArray)

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. 所以, 以上代码到底有什么用?

已解决, 此方法是为了防止一个JDK的bug, 该bug会把普通数组反射成泛型数组, 该方法就是把这个错误的泛型数组还原成普通数组.
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=5041784