Java 使用反射制作对象

Java 使用反射制作对象,java,reflection,Java,Reflection,我们可以使用反射来创建对象。假设我在包p中有一个类“Employee” Employee emp = Employee.class.newInstance() OR Employee emp = (Employee)Class.forName("p.Employee").newInstance() 上述代码行将通过调用Employee的默认或无参数构造函数来创建Employee对象。然后我通过调用Employee的setters为对象设置了一些值 是否有任何方法可以通过在构造函数本身中给定

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

Employee emp = Employee.class.newInstance()  OR
Employee emp = (Employee)Class.forName("p.Employee").newInstance() 
上述代码行将通过调用Employee的默认或无参数构造函数来创建Employee对象。然后我通过调用Employee的setters为对象设置了一些值


是否有任何方法可以通过在构造函数本身中给定值(即调用参数化构造函数)来使用反射创建对象?

是的,让我们假设
Foo
有一个接受单个字符串作为参数的构造函数。然后使用以下代码给出了使用该构造函数的实例:

Class<?> fooClass = Foo.class;
Constructor<?> constructor = fooClass.getConstructor(String.class);
Object obj = constructor.newInstance("hello");
Class-fooClass=Foo.Class;
构造函数=fooClass.getConstructor(String.class);
Object obj=constructor.newInstance(“hello”);

是的,让我们假设
Foo
有一个接受单个字符串作为参数的构造函数。然后使用以下代码给出了使用该构造函数的实例:

Class<?> fooClass = Foo.class;
Constructor<?> constructor = fooClass.getConstructor(String.class);
Object obj = constructor.newInstance("hello");
Class-fooClass=Foo.Class;
构造函数=fooClass.getConstructor(String.class);
Object obj=constructor.newInstance(“hello”);
查看并查看

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

Constructor<Employee> constructor = Class.forName("p.Employee").getConstructor(Integer.class, String.class);
Employee employee = constructor.newInstance(1,"foo");
Constructor=Class.forName(“p.Employee”).getConstructor(Integer.Class,String.Class);
Employee=constructor.newInstance(1,“foo”);
查看并查看

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

Constructor<Employee> constructor = Class.forName("p.Employee").getConstructor(Integer.class, String.class);
Employee employee = constructor.newInstance(1,"foo");
Constructor=Class.forName(“p.Employee”).getConstructor(Integer.Class,String.Class);
Employee=constructor.newInstance(1,“foo”);

有。例如,请参见“是”,即有。有关示例,请参见