1. class 用来描述类本身
  2. Package 用来描述类所属的包
  3. Filed 用来描述类中的属性
  4. Method 用来描述类中的方法
  5. Construvtor 用来描述构造方法
  6. Annotation 用来描述类中的注解

    Class

  7. 获取类的方法

    1. Class clazz = Class.forName("包名.类名");
    2. Class clazz = 类名.class
    3. Class clazz = 对象.getClass()
  8. Class中常用的方法
    1. int i = getModifiers() 获取类的修饰符(权限 特征)
    2. String name = getName() 获取全名
    3. String name = getSimpleName() 获取简单名字
    4. Package p = clazz.getPackage() 获取类所在的包
    5. Class pClazz = clazz.getSuperclass() 获取父类
    6. Class[] interfaces = clazz.getInterfaces() 获取类实现的接口
    7. Object obj = clazz.newInstance() 创建对象

Filed

  1. Filed filedName = clazz.getFiled("属性名")获取类的属性 需要知道属性名 属性必须是公有的
  2. FIled[] fileds = clazz.getFIleds() 获取类的全部属性 包含继承过来的公有属性
  3. Filed f = clazz.getDeclaredFiled() 获取类的私有属性
  4. Filed[] f = clazz.getDeclaredFiledS() 获取类的全部私有属性
    1. 如果需要修改私有元素需要**f.setAccessible(true)**设置为true就可以修改
  5. int modifiers = filedName.getModifiters()获取属性的修饰符
  6. Class fClass = filedName.getType() 获取属性的类型
  7. String name = filedName.getName() 获取属性的名字
  8. filedName.set("要赋值的那个对象",值) 给属性赋值,需要传递给那个对象的属性辅助
  9. filedName.get("对象") 取值,要取那个对象的值

Method

  1. Method m = clazz.getMethod("方法名",参数的类型类)获取方法(自己类+父类)
  2. Method m = clazz.getMethods("方法名",参数的类型类)获取所有的方法(自己类+父类)
  3. Method f = m.getDeclaredMethod() 获取类的私有方法
  4. Method[] f = m.getDeclaredMethods() 获取类的全部私有方法
    1. 如果需要修改私有元素需要**m.setAccessible(true)**设置为true就可以执行
  5. int modifiers = m.getModifiters()获取方法的修饰符
  6. Class mrt = m.getReturnType()获取返回值数据类型
  7. String mn = m.getName()获取方法的名字
  8. Class[] mpts = m.getParameterTypes()获取方法参数列表的类型
  9. Class[] mets = m.getExceptionTypes()获取方法抛出异常的类型
  10. Object obj = m.invoke(对象,[参数])执行方法

    构造方法Constructor

    1. public class TestConstructor{
    2. public static void main(String[] args){
    3. try{
    4. Class clazz = Person.class;
    5. Constructor con == clazz.getConstructor(); // 获取构造方法 可有参数类型类
    6. Constructor[] cons == clazz.getConstructors();// 获取一组构造方法可有参数类型类
    7. Person p = (Person)con.newInstance(); // 执行构造方法
    8. int modifiers = m.getModifiters(); //获取方法的修饰符
    9. String mn = m.getName(); //获取方法的名字
    10. Class[] mpts = m.getParameterTypes(); //获取方法参数列表的类型
    11. Class[] mets = m.getExceptionTypes(); //获取方法抛出异常的类型
    12. }catch(Exception e){
    13. }
    14. }
    15. }