package com.test; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectDemo { public static void main(String[] args) throws Exception { PrivateTest t = new PrivateTest(); Field field = Class.forName("com.test.PrivateTest").getDeclaredField( "str"); // 不让Java语言检查访问修饰符 field.setAccessible(true); field. set(t, "world"); t.getStr(); Method method2 = Class.forName("com.test.PrivateTest") .getDeclaredMethod("method", new Class[] {}); method2.setAccessible(true); method2. invoke(t, new Object[] {}); } } class PrivateTest { private String str = "hello"; public void getStr() { System.out .println("I'm str,I'm a private field,my old value is hello,now I am --->" + str); } private void method() { System.out.println("I'm in a private method!"); } } --------------结果--------------------- I'm str,I'm a private field,my old value is hello,now I am --->world I'm in a private method! |