public class Person {
private int age;
public static void main(String[] args) {
Class<?> clazz = Person.class;
try {
Object o = clazz.newInstance();
Method setAge = clazz.getMethod("setAge",int.class);
Method invoke = setAge.getClass().getMethod("invoke", Object.class, Object[].class);
Object[] params = {12};
invoke.invoke(setAge,o,params);
System.out.println(o);//結果:Person{age=12}
/*還可以這樣……
Object o = clazz.newInstance();
Method setAge = clazz.getMethod("setAge",int.class);
Method invoke = setAge.getClass().getMethod("invoke", Object.class, Object[].class);
Method invoke2 = setAge.getClass().getMethod("invoke", Object.class, Object[].class);
Object[] params = {12};
Object[] params2 = {o,params};
invoke2.invoke(invoke,setAge,params2);
System.out.println(o);
*/
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
'}';
}
}
複製程式碼
用反射呼叫Method類的invoke方法
相關文章
- java反射機制之Method invoke執行呼叫方法例子Java反射
- 借用Java的Invoke反射,帶呼叫其他類的方法Java反射
- method.invoke(...)反射點反射
- 簡述java反射機制之Method invoke執行呼叫方法例子Java反射
- C# 反射呼叫擴充類方法C#反射
- java反射呼叫set和get方法的通用類Java反射
- 在例項中呼叫 Invoke 型別的類型別
- c# 類的反射例項 (GetType().Invoke().GetMethod().CreateInstance())C#反射
- 反射+Class類方法_利用反射分析類的能力反射
- java反射構建物件和方法的反射呼叫Java反射物件
- 【雜談】對RMI(Remote Method Invoke)的認識REM
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- java對過反射呼叫方法Java反射
- Java反射機制demo(五)—獲得並呼叫一個類中的方法Java反射
- PHP --反射 --獲取類的方法PHP反射
- 【Java基礎知識】Java反射--Class、Constructor、Filed、Method類的使用Java反射Struct
- JAVA的反射機制==>用反射分析類的實現Java反射
- C#中的平臺呼叫(P/Invoke)C#
- (C#)利用反射動態呼叫類成員C#反射
- 反射--Class物件功能--獲取Method反射物件
- java 反射之操作靜態MethodJava反射
- 反射可以取到原始呼叫方法的變數名嗎?反射變數
- 嚶嚶嚶嚶,方法被反射呼叫了反射
- C# 如何利用反射來載入程式集,並呼叫程式集中有關類的方法C#反射
- 反射呼叫DLL反射
- 安裝redis cluster時:undefined method `invoke_with_build_args' for nil:NilClassRedisUndefinedUI
- PHP通過反射實現物件的成員方法呼叫PHP反射物件
- 使用反射-動態建立物件及呼叫物件方法反射物件
- Attempt to invoke virtual method ‘int android.view.View.getImportantForAccessibility()‘ on a null obAndroidViewImportNull
- php中呼叫類的私有方法PHP
- 深入理解Java中的反射機制和使用原理!詳細解析invoke方法的執行和使用Java反射
- 關於JMX中MBeanServer的invoke()方法BeanServer
- C#在類中用呼叫Form的方法C#ORM
- PHP呼叫java類的兩種方法(轉)PHPJava
- 設計模式--模板方法模式Template method(類行為型)設計模式
- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getI...JavaNullExceptionAndroidIntent
- dubbo原始碼分析之服務呼叫方發起呼叫(入口InvokerInvocationHandler.invoke)原始碼
- Java 方法的反射Java反射