setAccessible()方法:
setAccessible 是启用和禁用访问安全检查的开关。值为 true 则指示反射的对象在使用 时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查;默认值为 false
由于 JDK 的安全检查耗时较多.所以通过 setAccessible(true)的方式关闭安全检查就可以 达到提升反射速度的目的。
import java.lang.reflect.Field;import java.lang.reflect.Method;public class Test3 {public static void main(String[] args) throws Exception {Users users = new Users();Class clazz = users.getClass();Field field = clazz.getDeclaredField("heigh");//忽略安全检查field.setAccessible(true);field.set(users,176);Object obj = field.get(users);System.out.println(obj);System.out.println("_______________________");Method method = clazz.getDeclaredMethod("setHeigh", int.class);method.setAccessible(true);method.invoke(users);}}
