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中有一些对象,它们都是另一个具有getId函数的类的子类。我在具有以下构造函数的someClass中具有两个相同类的对象。
public Object1(SomeComponent id) {
super(id);
}
其他对象具有以下构造函数:
public Object2() {
super(SomeComponent.CORRESPONDING_ID);
}
请注意,SomeComponent是一个枚举类。
因此,当我调用newInstance()方法时,它对于具有Object2类型构造函数的每个Object都可以正常工作,但是在Object1的情况下,不会创建任何实例。我必须同时调用无效构造函数和非无效构造函数。
请提供完整的代码和错误。
我认为超类或第一个对象的类没有带有空参数的构造函数。