扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

java涓璱nvoke()鎬庝箞浣跨敤

扬州沐宇科技
2023-08-03 14:10:50
invoke(), Java

鍦↗ava涓紝invoke()鏂规硶鐢ㄤ簬鍔ㄦ€佸湴璋冪敤瀵硅薄鐨勬柟娉曘€傚畠鐨勪娇鐢ㄦ柟娉曞涓嬶細

  1. 鍒涘缓涓€涓?code>Method瀵硅薄锛屾寚瀹氳璋冪敤鐨勬柟娉曞悕鍜屽弬鏁扮被鍨嬨€傚彲浠ヤ娇鐢?code>Class绫荤殑getMethod()鎴?code>getDeclaredMethod()鏂规硶鏉ヨ幏鍙?code>Method瀵硅薄銆?/p>

  2. 璁剧疆Method瀵硅薄鐨勫彲璁块棶鎬э紝濡傛灉璋冪敤鐨勬柟娉曟槸绉佹湁鏂规硶锛岄渶瑕佷娇鐢?code>setAccessible(true)鏉ヨ缃彲璁块棶鎬с€?/p>

  3. 浣跨敤invoke()鏂规硶璋冪敤鏂规硶锛屼紶閫掑璞″疄渚嬩綔涓虹涓€涓弬鏁帮紝浠ュ強鏂规硶鐨勫弬鏁帮紙濡傛灉鏈夛級浣滀负鍚庣画鍙傛暟銆?/p>

浠ヤ笅鏄竴涓ず渚嬩唬鐮侊紝婕旂ず浜嗗浣曚娇鐢?code>invoke()鏂规硶璋冪敤涓€涓璞$殑鏂规硶锛?/p>

import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
// 鍒涘缓涓€涓狿erson瀵硅薄
Person person = new Person("John", 30);
// 鑾峰彇Person绫荤殑sayHello鏂规硶
Method method = Person.class.getMethod("sayHello");
// 璁剧疆鍙闂€?/span>
method.setAccessible(true);
// 璋冪敤sayHello鏂规硶
method.invoke(person);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
private void sayHello() {
System.out.println("Hello, my name is " + name);
}
}

鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑鍒涘缓浜嗕竴涓?code>Person绫伙紝骞朵笖瀹氫箟浜嗕竴涓鏈夌殑sayHello鏂规硶銆傜劧鍚庯紝鎴戜滑浣跨敤getMethod()鏂规硶鑾峰彇浜?code>Person绫荤殑sayHello鏂规硶锛屽苟閫氳繃setAccessible(true)璁剧疆浜嗗彲璁块棶鎬с€傛渶鍚庯紝鎴戜滑浣跨敤invoke()鏂规硶璋冪敤浜嗚鏂规硶銆?/p>

杈撳嚭缁撴灉涓猴細Hello, my name is John銆?/p>

扫码添加客服微信