Trail: The Reflection API
Lesson: Manipulating Objects
Section: Creating Objects
Using No-Argument Constructors
Using No-Argument Constructors
If you need to create an object with the no-argument constructor, you can invoke the newInstance method on 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 the section 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]
Previous page: Creating Objects
Next page: Using Constructors that Have Arguments