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);