描述
這個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- 如果該方法是一個實例方法,並且指定的對象參數不是聲明底層方法(或其子類或實現者)的類或接口的實例;如果實際參數和形式參數的數量不同;如果原始參數的解包轉換失敗;或者,如果在可能的解包之後,參數值無法通過方法調用轉換轉換為相應的形式參數類型。
InvocationTargetException- 如果底層方法拋出異常。
NullPointerException- 如果指定的對象為 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 java.lang.reflect.Method.isBridge()用法及代碼示例
- Java java.lang.reflect.Method.isVarArgs()用法及代碼示例
- Java java.lang.reflect.Method.isSynthetic()用法及代碼示例
- Java java.lang.reflect.Method.getGenericReturnType()用法及代碼示例
- Java java.lang.reflect.Method.getDeclaredAnnotations()用法及代碼示例
- Java java.lang.reflect.Method.getDeclaringClass()用法及代碼示例
- Java java.lang.reflect.Method.getParameterTypes()用法及代碼示例
- Java java.lang.reflect.Method.getGenericExceptionTypes()用法及代碼示例
- Java java.lang.reflect.Method.toGenericString()用法及代碼示例
- Java java.lang.reflect.Method.getName()用法及代碼示例
- Java java.lang.reflect.Method.getModifiers()用法及代碼示例
- Java java.lang.reflect.Method.equals()用法及代碼示例
- Java java.lang.reflect.Method.getParameterAnnotations()用法及代碼示例
- Java java.lang.reflect.Method.getExceptionTypes()用法及代碼示例
- Java java.lang.reflect.Method.getReturnType()用法及代碼示例
- Java java.lang.reflect.Method.getDefaultValue()用法及代碼示例
- Java java.lang.reflect.Method.getGenericParameterTypes()用法及代碼示例
- Java java.lang.reflect.Method.getAnnotation()用法及代碼示例
- Java java.lang.reflect.Method.toString()用法及代碼示例
- Java java.lang.reflect.Method.hashCode()用法及代碼示例
注:本文由純淨天空篩選整理自 java.lang.reflect.Method.invoke() Method Example。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。