This question already has answers here:
Java: newInstance of class that has no default constructor
(6个答案)
6年前关闭。
我们可以使用反射来创建对象。假设我在p包中有一个“ Employee”类
上面的代码行将通过调用Employee的默认或无参数构造函数来创建Employee对象。然后我通过调用Employee的setter来为对象设置一些值
有没有办法通过在构造函数本身中赋值(即通过调用参数化构造函数)来使用反射创建对象?
(6个答案)
6年前关闭。
我们可以使用反射来创建对象。假设我在p包中有一个“ Employee”类
Employee emp = Employee.class.newInstance() OR
Employee emp = (Employee)Class.forName("p.Employee").newInstance()
上面的代码行将通过调用Employee的默认或无参数构造函数来创建Employee对象。然后我通过调用Employee的setter来为对象设置一些值
有没有办法通过在构造函数本身中赋值(即通过调用参数化构造函数)来使用反射创建对象?
最佳答案
看一下Class.getConstructor和Constructor。
首先,通过其参数类型获得正确的构造函数,然后使用该类型的参数调用它:
Constructor<Employee> constructor = Class.forName("p.Employee").getConstructor(Integer.class, String.class);
Employee employee = constructor.newInstance(1,"foo");
关于java - 用反射制裁剪体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10664322/
10-10 13:25