在Java中是否可以使用参数化构造函数来获取类的集合并在运行时实例化它们中的每一个?这些类只有一个构造函数可以接受任意数量的基本类型参数,尽管它们所采用的参数数量因每个类而异。例如,以下是我们想要在运行时实例化的四个类:
public class One { public One(int a) { } }
public class Two { public Two(char a, int b) { } }
public class Three { public Three(float a, char b, int c) { } }
public class Four { public Four(float a, char b, int c) { } }
答案 0 :(得分:2)
Class oneC = Class.forName("One"); // use FQCN
Contructor constructor = oncC.getConstructors()[0]; // assuming that the class has only 1 constructor
Class<?>[] paramTypes = constructor.getParameterTypes();
// Iterate paramTypes, create each parameter value and then call constructor.newInstance(...)
参考: