Field、Method、Constructor、Supperclass、实现的Interface、Annotation、方法的Exception信息、内部类
先获取类的Class实例
获取实现的接口
public Class<?>[] getInterfaces()获取此对象所表示的类或接口实现的接口
获取所继承的父类
public Class<? Super T> getSuperclass()返回此Class所表示的实体(类、接口、基本数据类型)的父类的Class
获取全部的构造器
- public Constructor[] getConstructors()
返回此Class对象所表示的类的所有public构造器
- public Constructor[] getDeclaredConstructors()
返回此Class对象表示的类中声明的所有构造器,包括私有的
Constructor类中:取得修饰符:public int getModifiers()取得方法名称:public String getName()取得参数的类型:public Class<?>[] getParameterTypes()
获取全部的方法
- public Method[] getDeclaredMethods()
返回此Class对象所表示的类或接口的全部方法
- public Method[] getMethods() 返回此Class对象所表示的类或接口的public方法
Method类中:* public Class<?> getReturnType() 取得方法全部的返回值* public Class<?>[] getParameterTypes() 获取方法全部的参数* public int getModifiers() 取得方法修饰符* public Class<?>[] getExceptionTypes() 获取方法异常信息
获取全部的属性(Field)
- public Field[] getFields()
返回此Class对象所表示的类或接口的public的Field
- public Field[] getDeclaredFields()
返回此Class对象所表示的类或接口的全部Field,包括private修饰的属性
Field类中:* public int getModifiers() 以整数形式返回此Field的修饰符* public Class<?> getType() 返回Field的属性类型* public String getName() 返回Field名称
获取注解(Annotation)
- public Annotation[] getAnnotations() 获取此Class对象所表示的类或接口的public修饰的注解
- public Annotation[] getDeclaredAnnotations() 获取此Class对象所表示的类或接口的全部注解
泛型相关
- Type getGenericSuperclass() 获取带泛型的父类
- 获取父类的泛型
Class clazz = Person.class;Type type1 = clazz.getGenericSuperclass();ParameterizedType parameterizedType = (ParameterizedType) type1;Type[] args = parameterizedType.getActualTypeArguments(); //获取实际的泛型类型参数数组Class firstArg = (Class) args[0];System.out.println(firstArg.getName());
获取类所在的包
public Package getPackage()
获取内部类
public Class[] getDeclaredClasses()
数字形式修饰符转String修饰符
int i = f.getModifiers();String modifier = Modifier.toString(i);
