java.lang.Class
获取父类信息:

public native Class<? super T> getSuperclass()
返回直接继承的父类(由于编译擦除,没有显示泛型参数)
public Type getGenericSuperclass()
返回直接继承的父类(包含泛型参数)

实现的接口:

public native Class<?>[] getInterfaces()
返回该元素实现的接口(由于编译擦除,没有显示泛型参数),不包括父类实现的
public Type[] getGenericInterfaces()
返回该元素实现的接口(包含泛型参数),不包括父类实现的

名称:

public String getName()   返回全类名,例如:java.lang.String
getSimpleName()           返回类名,例如:String

注解:

public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
获取该元素上指定类型注解
public Annotation[] getAnnotations()
获取该元素上的所有注解,包括从父类继承的注解
public Annotation[] getDeclaredAnnotations() 
获取该元素上的所有注解,不包括从父类继承的注解
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
获取该元素上指定类型的注解

修饰符:

public native int getModifiers()
返回该元素上的修饰符,使用方法详见:Modifier类

构造函数:

public Constructor<T> getConstructor(Class<?>... parameterTypes)
获取此 Class 对象所表示的类的指定的public构造方法
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
获取此 Class 对象所表示的类的指定的构造方法,private,protected,public等都可以
public Constructor<?>[] getConstructors() 
获取此Class 对象所表示的类的所有public构造方法
public Constructor<?>[] getDeclaredConstructors()
获取此Class 对象所表示的类的所有构造方法

成员:

public Field getField(String name)
获取此Class 对象所表示的类或接口的指定public成员字段
public Field[] getDeclaredFields()
获取此Class 对象所表示的类或接口的指定成员字段,private,protected,public等都可以
public Field[] getFields()
获取此Class 对象所表示的类的所有public成员字段,包括从父类继承的public成员字段
public Field[] getDeclaredFields()
获取此Class 对象所表示的类的所有成员字段,不包括从父类继承的成员字段

方法:

public Method getMethod(String name, Class<?>... parameterTypes)
获取此Class 对象所表示的类或接口的指定public成员方法
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
获取此Class 对象所表示的类或接口的指定成员方法,private,protected,public等都可以
public Method[] getMethods() 
获取此Class 对象所表示的类的所有public成员方法,包括从父类继承的public成员方法
public Method[] getDeclaredMethods() 
获取此Class 对象所表示的类的所有成员方法,不包括从父类继承的成员方法

内部类:

public Class<?>[] getClasses()
返回类定义的公共的内部类,以及从父类、父接口那里继承来的内部类
public Class<?> getDeclaringClass()
返回类中定义的公共、私有、保护的内部类
public Class<?> getEnclosingClass()
获取该类是在哪个类中定义的, 比如内部类或匿名内部类在哪个类中定义的。如果是顶级类则返回null
详见:
public Constructor<?> getEnclosingConstructor()
获取类是在哪个构造函数中定义的,比如构造方法中定义的匿名内部类
public Method getEnclosingMethod()
获取方法中定义的内部类所在的方法
public boolean isLocalClass()
是否是局部内部类
public boolean isMemberClass() 
是否是成员内部类
public boolean isAnonymousClass()
是否是匿名内部类
public <U> Class<? extends U> asSubclass(Class<U> clazz)
强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。

其他:

public native boolean isArray()
判定此 Class 对象是否表示一个数组类。
public native boolean isAssignableFrom(Class<?> cls)
判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。
public boolean isEnum()
当且仅当该类声明为源代码中的枚举时返回 true。
public native boolean isInstance(Object obj)
与instanceof 功能完全相同 例如:if(rect instanceof Shape)和if(Shape.class.isInstance(rect))
public native boolean isInterface()
判定指定的 Class 对象是否表示一个接口类型。
public native boolean isPrimitive()
判定指定的 Class 对象是否表示一个基本类型(boolean、char、byte、short、int、long、float、double)。
public TypeVariable<Class<T>>[] getTypeParameters()
按声明顺序返回 TypeVariable 对象的一个数组