java反射如何读取类方法和设置属性值
1、新建一个pojo类来测试,private String course;private String score;和对应的get和set方法
2、新建一个TestField测试类,读取类中所有属性集合Class.getDeclaredFields()可以读取出类所有字段数组Field[]setAccessible(true)设置属性可以方法Field.get读取属性值Field.set设置属性值
3、读取类中的方法,Class.getMethods(),返回方法数组Method[]method.getName()可以获取方法的名称method.invoke(obj)可以动态调用方法
4、实例化Grade类Grade bean = new Grade猾诮沓靥("java", "99");reflectClass(bean.getCl锾攒揉敫ass(), bean);然后运行,查看打印结果,属性名称和属性值:name:course value = javaname:score value = 99方法名和方法执行结果:methodName:getCourse value:12methodName:getScore value:12
5、使用反射来实例化Grade类,通过这种方式,只要传递一个类路径就可以动态实例化任何一个类实例String classPath = "cn.sw.study.common.test.reflect.Grade";Class cla = TestField.class.getClassLoader().loadClass(classPath);reflectClass(cla, cla.newInstance());
6、再次运行,查询打印结果,可以看到通过反射实例化的grade类,同样可以像new出来的实例一样使用