使用 Java 中的反射呼叫物件方法


可以使用 java.lang.Class.getDeclaredMethods() 方法來呼叫物件的方法。此方法返回一個數組,其中包含所有 public、private、protected 和預設訪問許可權的 Method 物件。但是,此陣列不包括繼承的方法。

此外,如果類或介面沒有方法,或者在 Class 物件中表示基本型別、陣列類或 void,則 getDeclaredMethods() 方法會返回一個長度為 0 的陣列。

下面給出了演示此問題的程式 −

示例

 線上演示

import java.lang.reflect.Method;
class ClassA {
   private String name = "John";
   public String returnName() {
      return name;
   }
}
public class Demo {
   public static void main(String[] args) throws Exception {
      Class c = ClassA.class;
      Method[] methods = c.getDeclaredMethods();
      ClassA obj = new ClassA();
      for (Method m : methods) {
         Object result = m.invoke(obj, new Object[0]);
         System.out.println(m.getName() + ": " + result);
      }
   }
}

輸出

returnName: John

更新於: 25-6-2020

687 人檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.