newInstance()
是Java中Class类的一个方法,可以动态地创建类的实例对象。该方法会调用无参数构造函数,如果没有提供无参数构造函数,则会抛出InstantiationException异常。
使用newInstance()
方法时,需要首先获取类的Class对象,通常有三种方式:
- 使用对象的getClass()方法,如:
Object obj = new MyClass();
Class<?> cls = obj.getClass(); - 使用类名.class,如:
Class<?> cls = MyClass.class;
- 使用Class.forName()方法,如:
Class<?> cls = Class.forName("com.example.MyClass");
获取Class对象后,可以使用newInstance()
方法创建实例对象,如:
Object obj = cls.newInstance();
需要注意,newInstance()方法返回的对象类型为Object,需要进行类型转换才能调用实际的方法。
下面是两条示例说明:
示例一:创建StringBuilder对象
Class<?> cls = Class.forName("java.lang.StringBuilder");
StringBuilder sb = (StringBuilder) cls.newInstance();
System.out.println(sb.capacity());
输出结果为0,说明成功地创建了一个StringBuilder对象。
示例二:创建自定义类对象
class MyClass {
public MyClass() {
System.out.println("MyClass instance created.");
}
}
Class<?> cls = MyClass.class;
MyClass mc = (MyClass) cls.newInstance();
输出结果为”MyClass instance created.”,说明成功地创建了一个MyClass对象。