Java反射允许你以一种在运行时看自己甚至是改变自己的方式来写程序。可以当成是元编程。
它很强大,允许你打破程序的规则。
获取对象所有的域:
object.getClass().getDeclaredFields();
使用for loop遍历获取field
打印域名:
field.getName();
这样就做到了写代码来看Java类的结构。
改变私有域对象:
field.setAccessible(true);
field.set(object, value);
获取对象所有的方法:
object.getClass().getDeclaredMethods();
使用for loop遍历获取medthod
执行改方法:
method.invoke(object);
执行私有方法:
method.setAccessible(true);
也可以执行类的静态方法:
method.invoke(null);
应用场景:
类库如Spring Framework
测试的时候,需要设置私有的field