自己對於java反射機制的初步學習,瞭解到反射的功能強大,寫一些簡單的代碼以便自己以後參考。
package ch15;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
class A{
public void print1(){
System.out.println("這是一個公有方法");
}
private void print2(){
System.out.println("這是一個私有方法");
}
}
public class Reflection {
public static void main(String[] args) throws Exception{
A a = new A();
//反射調用共有方法
Method p = a.getClass().getMethod("print1");
p.invoke(a);
//a.print2(); print2爲私有方法不可直接調用,但是利用反射可以調用
//反射調用私有方法
Method p1= a.getClass().getDeclaredMethod("print2");
p1.setAccessible(true);
Object object = p1.invoke(a);
}
}
運行結果如圖,可以通過反射機制調用到A類的私有方法。