@SuppressWarnings("rawtypes")
    public static Map<TypeVariable, Type> getTypeVariableMap(Class<?> clazz) {
        Map<TypeVariable, Type> typeVariableMap = new HashMap<TypeVariable, Type>();
        buildTypeVariableMap(ResolvableType.forClass(clazz), typeVariableMap);

        return typeVariableMap;
    }
@ SuppressWarnings ( "rawtypes" ) public static Map < TypeVariable , Type > getTypeVariableMap ( Class < ? > clazz ) { Map < TypeVariable , Type > typeVariableMap = new HashMap < TypeVariable , Type > ( ) ; buildTypeVariableMap ( ResolvableType . forClass ( clazz ) , typeVariableMap ) ; return typeVariableMap ; }
Build a mapping of {@link TypeVariable#getName TypeVariable names} to {@link Class concrete classes} for the specified
{@link Class}. Searches all super types, enclosing types and interfaces.