我创建了一个ArrayList来存储Classes。然后我想使用ArrayList中的成员来创建一个实例。我该如何实例化?
QTableWidgetItem
答案 0 :(得分:0)
如果你在所有类上都没有args构造函数,你可以使用Class.newInstance(),例如
mDone
(我还没有打开IDE,因此无法验证确切的语法)。
如果你有构造函数的参数,那么它有点复杂。您可以在此处阅读完整的详细信息:https://docs.oracle.com/javase/tutorial/reflect/member/ctorInstance.html
答案 1 :(得分:0)
您可以存储对构造函数的引用,而不是在列表中存储类:
List<Supplier<Object>> hahalist = new ArrayList<>();
hahalist.add(MyClass::new);
hahalist.add(Machine::new);
hahalist.add(MyMachine::new);
Object instance = hahalist.get(1).get(); // Calling constructor
由于MyClass
和Machine
的最近共同祖先Object
是Supplier
我在这里使用的返回类型。