扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

java鍙嶅皠涔媔nvoke鏂规硶鎬庝箞浣跨敤

扬州沐宇科技
2023-08-17 23:24:56
invoke, Java

Java鍙嶅皠涓殑invoke鏂规硶鐢ㄤ簬璋冪敤鎸囧畾瀵硅薄鐨勬柟娉曘€傚畠鐨勪娇鐢ㄦ柟寮忓涓嬶細

  1. 鑾峰彇Class瀵硅薄锛氶鍏堥渶瑕佽幏鍙栧埌瑕佽皟鐢ㄦ柟娉曠殑瀵硅薄鐨凜lass瀵硅薄锛屽彲浠ヤ娇鐢?code>Class.forName()鏂规硶鎴栬€呯洿鎺ヤ娇鐢ㄥ璞$殑getClass()鏂规硶銆?/li>
Class<?> clazz = Class.forName("com.example.MyClass");
  1. 鑾峰彇Method瀵硅薄锛氭帴涓嬫潵闇€瑕佽幏鍙栬璋冪敤鐨勬柟娉曠殑Method瀵硅薄锛屽彲浠ヤ娇鐢?code>getMethod()鏂规硶鎴栬€?code>getDeclaredMethod()鏂规硶锛屽墠鑰呯敤浜庤幏鍙栧叕鍏辨柟娉曪紝鍚庤€呯敤浜庤幏鍙栨墍鏈夋柟娉曪紙鍖呮嫭绉佹湁鏂规硶锛夈€?/li>
Method method = clazz.getMethod("myMethod", String.class, int.class);
  1. 璋冪敤鏂规硶锛氭渶鍚庝娇鐢?code>invoke()鏂规硶璋冪敤鏂规硶锛屼紶閫掑疄渚嬪璞′互鍙婃柟娉曠殑鍙傛暟銆?/li>
Object result = method.invoke(instance, "Hello", 123);

瀹屾暣绀轰緥浠g爜濡備笅锛?/p>

import java.lang.reflect.Method;
public class MyClass {
public void myMethod(String str, int num) {
System.out.println("String: " + str + ", int: " + num);
}
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("com.example.MyClass");
MyClass instance = (MyClass) clazz.getDeclaredConstructor().newInstance();
Method method = clazz.getMethod("myMethod", String.class, int.class);
method.invoke(instance, "Hello", 123);
}
}

杩欐牱灏卞彲浠ヤ娇鐢ㄥ弽灏勮皟鐢ㄦ寚瀹氬璞$殑鏂规硶浜嗐€傛敞鎰忥紝浣跨敤鍙嶅皠璋冪敤鏂规硶鏃堕渶瑕佸鐞嗗紓甯革紝鍥犱负鍙嶅皠璋冪敤鍙兘浼氭姏鍑?code>IllegalAccessException銆?code>IllegalArgumentException鍜?code>InvocationTargetException绛夊紓甯搞€?/p>

扫码添加客服微信