Determine the class hierarchy of a class
The one comment I have is that I find your if statement to be really hard to read:

if (clazz.isEnum() || clazz.isAnnotation() || clazz.isInterface() || clazz.isArray() || clazz.isPrimitive()) 


I would at least put that into a small helper to throw that exception:

private void checkClassRefersToClassType()