扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Java鈥嬩腑Method绫荤殑invoke()鏂规硶鎬庝箞浣跨敤

扬州沐宇科技
2023-11-04 12:05:12
Java

鍦↗ava涓紝Method绫荤殑invoke()鏂规硶鐢ㄤ簬璋冪敤鐗瑰畾瀵硅薄鐨勬柟娉曘€傚畠鐨勪娇鐢ㄦ柟寮忓涓嬶細

  1. 棣栧厛锛岄€氳繃鍙嶅皠鑾峰彇瑕佽皟鐢ㄧ殑鏂规硶瀵硅薄銆傚彲浠ヤ娇鐢–lass绫荤殑getDeclaredMethod()鏂规硶鎴杇etMethod()鏂规硶鏉ヨ幏鍙栨柟娉曞璞★紝杩欎袱涓柟娉曠殑鍖哄埆鍦ㄤ簬getDeclaredMethod()鏂规硶鍙互鑾峰彇鎵€鏈夎闂潈闄愮殑鏂规硶锛岃€実etMethod()鏂规硶鍙兘鑾峰彇public璁块棶鏉冮檺鐨勬柟娉曘€?/p>

  2. 鍒涘缓瑕佽皟鐢ㄦ柟娉曠殑瀹炰緥瀵硅薄銆傚鏋滄柟娉曟槸闈欐€佹柟娉曪紝鍒欏彲浠ヤ娇鐢╪ull浣滀负瀹炰緥瀵硅薄锛涘鏋滄柟娉曟槸闈為潤鎬佹柟娉曪紝鍒欓渶瑕佷娇鐢ㄦ柟娉曟墍灞炵被鐨勫疄渚嬪璞°€?/p>

  3. 璋冪敤Method绫荤殑invoke()鏂规硶鏉ユ墽琛屾柟娉曘€傝鏂规硶鎺ユ敹涓や釜鍙傛暟锛氱涓€涓弬鏁版槸瀹炰緥瀵硅薄锛岀浜屼釜鍙傛暟鏄紶閫掔粰鏂规硶鐨勫弬鏁般€傚鏋滄柟娉曟病鏈夊弬鏁帮紝鍒欏彲浠ヤ紶閫抧ull鎴栦竴涓暱搴︿负0鐨勬暟缁勩€?/p>

涓嬮潰鏄竴涓ず渚嬩唬鐮侊紝婕旂ず浜嗗浣曚娇鐢∕ethod绫荤殑invoke()鏂规硶鏉ヨ皟鐢ㄤ竴涓柟娉曪細

import java.lang.reflect.Method;

public class Main {
  public static void main(String[] args) throws Exception {
    // 鑾峰彇鏂规硶瀵硅薄
    Class<?> clazz = MyClass.class;
    Method method = clazz.getDeclaredMethod("myMethod", String.class);

    // 鍒涘缓瀹炰緥瀵硅薄
    MyClass instance = new MyClass();

    // 璋冪敤鏂规硶
    Object result = method.invoke(instance, "Hello World");

    // 杈撳嚭缁撴灉
    System.out.println(result);
  }
}

class MyClass {
  public String myMethod(String input) {
    return "You entered: " + input;
  }
}

鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑棣栧厛浣跨敤getDeclaredMethod()鏂规硶鑾峰彇浜嗗悕涓?quot;myMethod"鐨勬柟娉曞璞°€傜劧鍚庯紝鎴戜滑鍒涘缓浜哅yClass鐨勫疄渚嬪璞★紝骞朵娇鐢╥nvoke()鏂规硶鏉ヨ皟鐢╩yMethod鏂规硶锛屽苟浼犻€掍簡涓€涓瓧绗︿覆鍙傛暟"Hello World"銆傛渶鍚庯紝鎴戜滑灏嗘柟娉曠殑杩斿洖鍊兼墦鍗板埌鎺у埗鍙颁笂銆?/p>

闇€瑕佹敞鎰忕殑鏄紝invoke()鏂规硶鐨勮繑鍥炲€兼槸涓€涓狾bject绫诲瀷锛屽洜姝ら渶瑕佹牴鎹疄闄呮儏鍐佃繘琛岀被鍨嬭浆鎹€傚彟澶栵紝濡傛灉鏂规硶鎶涘嚭浜嗗紓甯革紝invoke()鏂规硶涔熶細灏嗗紓甯告姏鍑猴紝闇€瑕佽繘琛岀浉搴旂殑寮傚父澶勭悊銆?/p>

扫码添加客服微信