Through reflection, we can even create instances.
The simplest way to instantiate objects is to use newInstance()
method of Class.
public T newInstance()
This uses default constructor to instantiate objects.
The following creates an instance of String:
String s = String.class.newInstance();
If we call newInstance()
on a class that has no default constructor, an InstantiationException will be thrown.
To call constructors with parameter:
We use newInstance()
method of Constructor that looks like:
public T newInstance(Object... initargs)
The following program illustrates how to use newInstance()
method.
import java.lang.reflect.Constructor; public class Main { public static void main(String args[]) throws Exception { String s1 = (String) String.class.newInstance(); Class c = String.class; Constructor con = c.getDeclaredConstructor(char[].class); char[] chars = { 'J', 'a', 'v', 'a' }; Object[] param = { chars }; String s2 = (String) con.newInstance(param); System.out.println(s2);/*from www . jav a 2 s. com*/ } }
This creates two instances of String.
The first string s1 is constructed using newInstance()
of Class.
The second string s2 is constructed with the help of the following constructor:
public String(char[] value)
The newInstance()
will throw exceptions if proper arguments are not supplied.