Java反射可以通過使用getDeclaredMethod()
方法來獲取私有方法。getDeclaredMethod()
方法可以獲取指定名稱和參數類型的方法,包括私有方法。
以下是一個示例代碼,演示了如何使用反射獲取并調用私有方法:
import java.lang.reflect.Method;
public class ReflectionExample {
private void privateMethod() {
System.out.println("私有方法被調用");
}
public static void main(String[] args) throws Exception {
// 獲取類的Class對象
Class<ReflectionExample> clazz = ReflectionExample.class;
// 獲取指定名稱的私有方法
Method privateMethod = clazz.getDeclaredMethod("privateMethod");
// 設置私有方法可訪問
privateMethod.setAccessible(true);
// 創建類的實例
ReflectionExample example = clazz.newInstance();
// 調用私有方法
privateMethod.invoke(example);
}
}
在上述代碼中,getDeclaredMethod()
方法用于獲取privateMethod()
方法,setAccessible(true)
方法用于設置私有方法可訪問,invoke()
方法用于調用私有方法。
注意:在使用反射調用私有方法時,需要設置私有方法可訪問,否則會拋出IllegalAccessException
異常。