Java中的new Operator 和 newInstance()区别
在Java中,new是一个操作符,而newInstance()是一个方法,两者都用于创建对象。如果知道要创建的对象类型,则可以使用new操作符,但如果不知道要创建的对象类型并在运行时传递,则会使用newInstance()方法。
一般来说,new操作符用于创建对象,但如果要确定在运行时创建的对象类型,则无法使用new操作符。在本例中,我们必须使用newInstance()方法。
让我们讨论一下新的操作符。在Java中,对象的创建按列出的3个步骤进行:对象实例化和对象初始化,以及构造函数调用。
当我们使用new关键字时,编译器将该变量解释为一个对象
示例:
输出:
注意:当我们想调用对象而不是变量时,也可以在构造函数中使用它。
现在,如果我们提出newInstance()方法,它存在于java.lang包中Class类的内部。正如我们已经讨论过的,它用于从远程源加载类的地方。
考虑这样一个场景,稍后我们将使用java程序连接到数据库执行。使用JDBC示例可以更清楚地解释这一点。还记得吗,我们使用Class.forName()方法动态加载寄存器,并在其上使用newInstance()方法动态创建对象。
示例:
Output:
输出说明:forName()方法返回我们调用newInstance()方法的类’ class ‘对象,newInstance()方法将返回我们作为命令行参数传递的类的对象。
- 如果传递的类不存在,则会发生ClassNotFoundException异常。
- 如果传递的类不包含默认构造函数,则会发生InstantionException,因为newInstance()方法会在内部调用特定类的默认构造函数。
- 如果不能访问指定类定义的定义,就会发生IllegalAccessException异常。