code: private static Type resolveGenericArrayTypeVariables(final GenericArrayType type,
                                                           final Map<String, Type> generics,
                                                           final boolean countPreservedVariables) {
          final Type componentType = resolveTypeVariables(
                  type.getGenericComponentType(), generics, countPreservedVariables);
          return ArrayTypeUtils.toArrayType(componentType);
      }
docs: May produce array class instead of generic array type. This is possible due to wildcard or parameterized type
  shrinking.
  
  @param type                    type to repackage
  @param generics                known generics
  @param countPreservedVariables true to replace {@link ExplicitTypeVariable} too
  @return type without {@link TypeVariable}'s