使用参数化构造函数实例化一组给定的类
问题描述:
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) { } }
答
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(...)
参考:
与反思,就可以找到构造函数(因为只有一个),但是'a','b','c'等值会来自哪里fr OM? – 2015-01-09 21:27:30
@RC我不确定。即使在我们使用Constructor.newInstance()的时候,我们仍然需要在编译期间知道参数的数量和顺序。 – user928112 2015-01-09 21:30:53