src/main/java/com/rockagen/commons/util/ReflexUtil.java
public static Type[] getSuperClassGenricTypes(final Class<?> clazz) {

		Type[] temp = { Object.class };
		// eg: ClassA<T>
		if (clazz == null)
			return null;
		Type type = clazz.getGenericSuperclass();

		if (type instanceof ParameterizedType) {

			return ((ParameterizedType) type).getActualTypeArguments();

		} else {
			log.warn(
					"{} 's superclass not ParameterizedType",
					clazz);
			return temp;
		}
	}
public static Type[] getSuperClassGenricTypes(final Class<?> clazz) {

		Type[] temp = { Object.class };
		// eg: ClassA<T>
		if (clazz == null)
			return null;
		Type type = clazz.getGenericSuperclass();

		if (type instanceof ParameterizedType) {

			return ((ParameterizedType) type).getActualTypeArguments();

		} else {
			log.warn(
					"{} 's superclass not ParameterizedType",
					clazz);
			return temp;
		}
	}
public static Type [ ] getSuperClassGenricTypes ( final Class < ? > clazz ) { Type [ ] temp = { Object . class } ; // eg: ClassA<T> if ( clazz == null ) return null ; Type type = clazz . getGenericSuperclass ( ) ; if ( type instanceof ParameterizedType ) { return ( ( ParameterizedType ) type ) . getActualTypeArguments ( ) ; } else { log . warn ( "{} 's superclass not ParameterizedType" , clazz ) ; return temp ; } }
obtained the parent class generic parameter types
<p>
for example:
</p>
<code>
ClassB&lt;T&gt; extends ClassA&lt;T&gt;
</code>

@param clazz {@link java.lang.Class}
@return Types
obtained the parent class generic parameter types <p > for example : < / p > <code > ClassB&lt ; T&gt ; extends ClassA&lt ; T&gt ; < / code >