new 和 newinstance
时间: 2023-09-11 20:04:38 浏览: 52
这两个关键字都与创建对象有关。
new是在Java中创建新对象的关键字。它可以用来调用一个类的构造函数来创建一个新的对象。例如,下面的代码将创建一个新的String对象并将其赋给str:
```
String str = new String("Hello World");
```
newInstance则是通过调用类的默认构造函数来创建一个新的对象实例。它使用反射机制,允许你在运行时动态地创建类的实例,这样你就可以通过字符串来指定类名,或者在不知道类名的情况下创建一个对象。以下是一个使用newInstance()创建对象的例子:
```
Class MyClass = Class.forName("com.example.MyClass");
MyClass obj = (MyClass) MyClass.newInstance();
```
注意,在使用newInstance()创建对象时,要确保类有一个默认构造函数(即没有参数的空构造函数)或者可以通过参数列表来调用一个不同的构造函数。
相关问题
new和newinstance的区别
new和newInstance都可以用来实例化一个对象,但是newInstance是通过调用类的无参构造器实例化对象的方式,而new则可以调用类的任何构造器来实例化对象。此外,newInstance方法是在运行时通过反射来实例化对象,而new操作符是在编译期就已经确定的。
使用new 和newInstance方法创建一个对象
使用 `new` 关键字创建一个对象时,可以这样写:
```
ClassName objectName = new ClassName();
```
其中,`ClassName` 是要创建对象的类的名称,`objectName` 是要创建的对象的名称。例如,如果要创建一个名为 `myObject` 的 `String` 对象,可以这样写:
```
String myObject = new String();
```
使用 `Class.forName("className").newInstance()` 方法也可以创建一个对象。例如,如果要创建一个名为 `myObject` 的 `String` 对象,可以这样写:
```
String myObject = (String) Class.forName("java.lang.String").newInstance();
```
但是,使用 `newInstance` 方法创建对象的过程中,如果出现异常,就必须使用 try-catch 语句进行处理。