Java.lang.Class.newInstance() Method



The java.lang.Class.newInstance() creates a new instance of the class represented by this Class object. The class is instantiated as if by a new expression with an empty argument list. The class is initialized if it has not already been initialized. .


Following is the declaration for java.lang.Class.newInstance() method

public T newInstance() throws InstantiationException, IllegalAccessException


  • NA

Return Value

This method returns a newly allocated instance of the class represented by this object.


  • IllegalAccessException -- if the class or its nullary constructor is not accessible.

  • InstantiationException -- If this Class represents an abstract class, an interface, an array class, a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.

  • ExceptionInInitializerError -- If the initialization provoked by this method fails.

  • SecurityException -- If a security manager, s, is present.


The following example shows the usage of java.lang.Class.newInstance() method.

package com.tutorialspoint;

import java.util.*;
import java.lang.*;

public class ClassDemo {

   public static void main(String[] args) {

     try {
        // date object
        Date d = new Date();
        Class cls = d.getClass();
        System.out.println("Time = " + d.toString());

        /* creates a new instance of the class represented by this 
        Class object cls */
        Object obj = cls.newInstance();
        System.out.println("Time = " + obj);
     catch(InstantiationException e) {
     catch(IllegalAccessException e) {

Let us compile and run the above program, this will produce the following result:

Time = Tue Oct 23 16:09:55 MST 2012
Time = Tue Oct 23 16:09:55 MST 2012