Java.lang.Class.newInstance() 方法

描述

java.lang.Class.newInstance() 创建由这个 Class 对象表示的类的新实例。 该类被实例化为一个带有空参数列表的新表达式。 如果尚未初始化该类,则将其初始化。


声明

以下是 java.lang.Class.newInstance() 方法的声明。

public T newInstance() throws InstantiationException, IllegalAccessException

参数

NA


返回值

此方法返回此对象表示的类的新分配实例。


异常

  • IllegalAccessException − 如果类或其空构造函数不可访问。

  • InstantiationException − 如果这个 Class 表示一个抽象类、一个接口、一个数组类、一个原始类型或 void; 或者如果该类没有空构造函数; 或者如果实例化由于其他原因失败。

  • ExceptionInInitializerError − 如果此方法引发的初始化失败。

  • SecurityException − 如果存在安全管理员。


示例

下面的例子展示了 java.lang.Class.newInstance() 方法的使用。

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) {
         System.out.println(e.toString());
      } catch(IllegalAccessException e) {
         System.out.println(e.toString());
      }
   }
} 

让我们编译并运行上面的程序,这将产生下面的结果 −

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