簡體   English   中英

在以下情況下,如何使用反射為 class 中的所有對象調用方法?

[英]How to call a method for all objects in a class using reflection for below case?

for (final Field field : someClass.getClass().getDeclaredFields()) {
                final Method getId = field.getType().getMethod("getId");
                getId.setAccessible(true);
                SomeComponent obj = (SomeComponent)getId.invoke(field.getType().newInstance());
}

我在 someClass 中有對象,它們都是另一個 class 的子類,它具有 function getId。 我在 someClass 中有兩個相同的 class 對象,它具有以下構造函數。

 public Object1(SomeComponent id) {
      super(id);
   }

其他對象具有以下構造函數:

public Object2() {
      super(SomeComponent.CORRESPONDING_ID);
   }

請注意 SomeComponent 是一個枚舉 class。

因此,當我調用 newInstance() 方法時,它適用於每個具有 Object2 類型構造函數的 Object 但在 Object1 的情況下沒有創建實例。 我必須同時調用空構造函數和非空構造函數。

請提供完整的代碼和錯誤。

我認為第一個 object 的超級 class 或 class 沒有帶有空參數的構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM