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 对象的一个数组