Creating an Instance Dynamically Using Class Name and Constructor Parameters
In certain scenarios, you may encounter the need to create an instance of a class dynamically given its class name and provide parameters to its constructor. This can be achieved using the following approach:
Obtain the Class object for the given class name:
Retrieve the constructor of the class:
Create an instance of the class using the constructor:
Here's an example to illustrate this process:
Class<?> clazz = Class.forName("mypackage.MyClass"); Constructor<?> ctor = clazz.getConstructor(String.class); Object object = ctor.newInstance(new Object[] { "MyAttributeValue" });
Note that this approach requires providing a fully-qualified class name, including any nested classes separated by dollar signs ($). For instance, to create an instance of a nested class, you would use a class name like "foo.Outer$Nested".
The above is the detailed content of How Can I Dynamically Instantiate a Class in Java Using Its Name and Constructor Parameters?. For more information, please follow other related articles on the PHP Chinese website!