This question already has answers here:
Java: newInstance of class that has no default constructor
                                
                                    (6个答案)
                                
                        
                6年前关闭。
            
        

我们可以使用反射来创建对象。假设我在p包中有一个“ Employee”类

Employee emp = Employee.class.newInstance()  OR
Employee emp = (Employee)Class.forName("p.Employee").newInstance()


上面的代码行将通过调用Employee的默认或无参数构造函数来创建Employee对象。然后我通过调用Employee的setter来为对象设置一些值

有没有办法通过在构造函数本身中赋值(即通过调用参数化构造函数)来使用反射创建对象?

最佳答案

看一下Class.getConstructorConstructor

首先,通过其参数类型获得正确的构造函数,然后使用该类型的参数调用它:

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