The newInstance() method of Class class and Constructor class is used to create a new instance of the class.
The newInstance() method of Class class can invoke zero-argument constructor, whereas newInstance() method of Constructor class can invoke any number of arguments. So, Constructor class is preferred over Class class.
Syntax of newInstance() method of Class class
public T newInstance()throws InstantiationException,IllegalAccessException
Here T is the generic version. You can think of it as Object class. You will learn about generics later.
newInstance() Method Example-1
Let's see the simple example to use newInstance() method.
newInstance() method Example-2
We have learned in the introductory part of this topic that the newInstance() method of the Class class can only invoke the parameterless constructor. Let's understand the same with the help of an example.
/ReflectionExample1.java:15: error: unreported exception InstantiationException; must be caught or declared to be thrown ob = classDefinition.newInstance(); ^ Note: /ReflectionExample1.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. 1 error
Explanation: The newInstance() method of the Class class only invokes the zero-argument constructor. However, we need to invoke the non-zero argument constructor for that, we need to use the newInstance() method of the class Constructor.
The following program shows how one can use the newInstance() method of the class Constructor to avoid the exception that has come in the above example.
My JLabel in Reflection.