[英]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.