java反射技术

1.什么是反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制

  1. 获取Class对象的三种方式
    类名.class
    实例对象.getClass()
    Class.forName("类的全路径");
  1. 通过Class对象获取构造器对象
    Constructor [] cs = clazz.getConstructors(); -- 获取构造器的数组
    Stu stu = (Stu) clazz.newInstance(); -- 调用空的构造方法,获取实例对象
    Constructor c = clazz.getConstructor(类型.class); -- 通过指定的参数来获取构造器对象

  2. 通过Class对象获取属性对象
    Field f = clazz.getField("num"); -- 获取公有的属性对象
    Field f = clazz.getDeclaredField("属性"); -- 获取公有或者私有的属性对象

  3. 通过Class对象获取方法的对象
    Method m = clazz.getMethod("方法名称",参数类型.class); -- 获取共有的方法对象
    Method m = clazz.getDeclaredMethod("方法名称",参数类型.class); -- 获取公有或者私有的方法的对象