private static Class<?> getClass(Type paramType) { Class<?> rawClass = null; if (paramType instanceof Class) { rawClass = (Class<?>)paramType; } else if (paramType instanceof GenericArrayType) { rawClass = createArrayClass((GenericArrayType)paramType); } else if (paramType instanceof ParameterizedType) { rawClass = (Class<?>)((ParameterizedType)paramType).getRawType(); } return rawClass; }
private static Class<?> getClass(Type paramType) { Class<?> rawClass = null; if (paramType instanceof Class) { rawClass = (Class<?>)paramType; } else if (paramType instanceof GenericArrayType) { rawClass = createArrayClass((GenericArrayType)paramType); } else if (paramType instanceof ParameterizedType) { rawClass = (Class<?>)((ParameterizedType)paramType).getRawType(); } return rawClass; }
private static Class<?> createArrayClass(GenericArrayType atp) { Type tp = atp.getGenericComponentType(); Class<?> rawClass = null; if (tp instanceof Class) { rawClass = (Class<?>)tp; } else if (tp instanceof GenericArrayType) { rawClass = createArrayClass((GenericArrayType)tp); } else if (tp instanceof ParameterizedType) { rawClass = (Class<?>)((ParameterizedType)tp).getRawType(); if (List.class.isAssignableFrom(rawClass)) { rawClass = getClass(tp); rawClass = Array.newInstance(rawClass, 0).getClass(); } } return Array.newInstance(rawClass, 0).getClass(); }
private static Class<?> createArrayClass(GenericArrayType atp) { Type tp = atp.getGenericComponentType(); Class<?> rawClass = null; if (tp instanceof Class) { rawClass = (Class<?>)tp; } else if (tp instanceof GenericArrayType) { rawClass = createArrayClass((GenericArrayType)tp); } else if (tp instanceof ParameterizedType) { rawClass = (Class<?>)((ParameterizedType)tp).getRawType(); if (List.class.isAssignableFrom(rawClass)) { rawClass = getClass(tp); rawClass = Array.newInstance(rawClass, 0).getClass(); } } return Array.newInstance(rawClass, 0).getClass(); }