通過反射訪問私有屬性並對其進行修改
阿新 • • 發佈:2019-01-30
public class Private { private String name="Lucy"; public String getName() { return name; } } import java.lang.Class; import java.lang.reflect.*; public class Train { public static void main(String args[])throws Exception { Class<?> classType=Private.class; Field field=classType.getDeclaredField("name"); field.setAccessible(true); Object obj=classType.newInstance(); Object member=field.get(obj); System.out.println((String)member); System.out.println("------修改私有屬性後------"); field.set(obj, "Lily"); Object result=field.get(obj); System.out.println((String)result); System.out.println("呼叫getName()方法"); Method method=classType.getMethod("getName",new Class[]{}); Object res=method.invoke(obj, new Object[]{}); System.out.println((String)res); } }