- java.lang.reflect 包中的類
- java.lang.reflect - 首頁
- java.lang.reflect - AccessibleObject
- java.lang.reflect - Array
- java.lang.reflect - Constructor<T>
- java.lang.reflect - Field
- java.lang.reflect - Method
- java.lang.reflect - Modifier
- java.lang.reflect - Proxy
- java.lang.reflect 包的其他內容
- java.lang.reflect - 介面
- java.lang.reflect - 異常
- java.lang.reflect - 錯誤
- java.lang.reflect 有用資源
- java.lang.reflect - 快速指南
- java.lang.reflect - 有用資源
- java.lang.reflect - 討論
java.lang.reflect.Method.invoke() 方法示例
描述
java.lang.reflect.Method.invoke(Object obj, Object... args) 方法使用指定的引數在指定物件上呼叫此 Method 物件所表示的基礎方法。各個引數會自動解包以匹配原始形式引數,並且原始引數和引用引數都必須根據需要進行方法呼叫轉換。
宣告
以下是 java.lang.reflect.Method.invoke(Object obj, Object... args) 方法的宣告。
public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
引數
obj − 呼叫基礎方法的物件。
args − 方法呼叫使用的引數。
返回值
使用引數 args 在 obj 上排程此物件表示的方法的結果。
異常
IllegalAccessException − 如果此 Method 物件正在強制執行 Java 語言訪問控制,並且基礎方法不可訪問。
IllegalArgumentException − 如果該方法是例項方法,並且指定的 object 引數不是宣告基礎方法的類或介面(或其子類或實現者)的例項;如果實際引數和形式引數的數量不同;如果原始引數的解包轉換失敗;或者在可能的解包之後,引數值無法透過方法呼叫轉換轉換為相應的形式引數型別。
InvocationTargetException − 如果基礎方法丟擲異常。
NullPointerException − 如果指定的 object 為 null,並且該方法是例項方法。
ExceptionInInitializerError − 如果此方法引發的初始化失敗。
示例
以下示例演示了 java.lang.reflect.Method.invoke(Object obj, Object... args) 方法的用法。
package com.tutorialspoint;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class MethodDemo {
public static void main(String[] args)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Method[] methods = SampleClass.class.getMethods();
SampleClass sampleObject = new SampleClass();
methods[1].invoke(sampleObject, "data");
System.out.println(methods[0].invoke(sampleObject));
}
}
class SampleClass {
private String sampleField;
public String getSampleField() {
return sampleField;
}
public void setSampleField(String sampleField) {
this.sampleField = sampleField;
}
}
讓我們編譯並執行上述程式,這將產生以下結果:
data
java_reflect_method.htm
廣告