package fr.lteconsulting.hexa.classinfo; import java.util.List; /** * Runtime type information interface about a class * * @author Arnaud Tournier * (c) LTE Consulting - 2015 * http://www.lteconsulting.fr * * @param <T> The class for which runtime type information is provided */ public interface Clazz<T> { String getClassName(); Class<T> getReflectedClass(); Clazz<? super T> getSuperclass(); List<Field> getAllFields(); Field getAllField( String fieldName ); List<Field> getFields(); Field getField( String fieldName ); List<Field> getDeclaredFields(); Field getDeclaredField( String fieldName ); List<Method> getMethods(); Method getMethod( String methodName ); T NEW(); }