java濡備綍璋冪敤private鏂规硶
鍦↗ava涓紝鍙互浣跨敤鍙嶅皠鏈哄埗鏉ヨ皟鐢╬rivate鏂规硶銆?/p>
棣栧厛锛岄渶瑕佽幏鍙朇lass瀵硅薄銆傚彲浠ヤ娇鐢?code>Class.forName()鏂规硶浼犲叆绫荤殑鍏ㄩ檺瀹氬悕鏉ヨ幏鍙朇lass瀵硅薄锛屾垨鑰呯洿鎺ヤ娇鐢?code>绫诲悕.class鏉ヨ幏鍙栥€?/p>
鐒跺悗锛屼娇鐢?code>getDeclaredMethod()鏂规硶鏉ヨ幏鍙栨寚瀹氱殑鏂规硶銆傞渶瑕佷紶鍏ユ柟娉曞悕鍜屽弬鏁扮被鍨嬨€?/p>
鎺ヤ笅鏉ワ紝璁剧疆鏂规硶鐨勫彲璁块棶鎬э紝浣跨敤setAccessible(true)
鏂规硶灏嗘柟娉曠殑鍙闂€ц缃负true锛屽嵆鍙互璁块棶private鏂规硶銆?/p>
鏈€鍚庯紝浣跨敤invoke()
鏂规硶鏉ヨ皟鐢ㄦ柟娉曘€傞渶瑕佷紶鍏ユ柟娉曟墍灞炵殑瀵硅薄锛堝鏋滄槸闈欐€佹柟娉曪紝鍒欎紶鍏ull锛変互鍙婃柟娉曠殑鍙傛暟銆?/p>
浠ヤ笅鏄ず渚嬩唬鐮侊細
import java.lang.reflect.Method;
public class Main {
private void privateMethod() {
System.out.println("璋冪敤浜嗙鏈夋柟娉?quot;);
}
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("Main");
Method method = clazz.getDeclaredMethod("privateMethod");
method.setAccessible(true);
Main instance = new Main();
method.invoke(instance);
}
}
杩欐牱锛屽氨鍙互鎴愬姛璋冪敤private鏂规硶銆?/p>