Thursday, 23 September 2010

Creating class instance using No-Argument Constructors using reflection in java

If you need to create an object with the no-argument constructor, you can invoke the newInstance method upon a Class object. The newInstance method throws a NoSuchMethodException if the class does not have a no-argument constructor. For more information on working with Constructor objects, see Discovering Class Constructors.
The following sample program creates an instance of the Rectangle class using the no-argument constructor by calling the newInstance method:
import java.lang.reflect.*;
import java.awt.*;

class SampleNoArg {

public static void main(String[] args) {
Rectangle r = (Rectangle) createObject("java.awt.Rectangle");
System.out.println(r.toString());
}

static Object createObject(String className) {
Object object = null;
try {
Class classDefinition = Class.forName(className);
object = classDefinition.newInstance();
} catch (InstantiationException e) {
System.out.println(e);
} catch (IllegalAccessException e) {
System.out.println(e);
} catch (ClassNotFoundException e) {
System.out.println(e);
}
return object;
}
}
The output of the preceding program is:
java.awt.Rectangle[x=0,y=0,width=0,height=0]

No comments:

Post a Comment