作为Java开发人员,我们通常每天创建许多对象,但是我们始终使用依赖管理系统(例如Spring)来创建这些对象。但是,还有更多创建对象的方法,将在本文中进行研究。
Java中共有五种创建对象的方法,下面将通过示例说明这些方法,然后介绍创建对象的行的字节码。
执行最后给出的程序,将会看到方法1、2、3使用构造函数创建对象,而4、5没有调用构造函数创建对象。
1.使用新关键字
这就是日常的方法
Employee emp1 = new Employee();
0: new #19 // class org/programming/mitra/exercises/Employee 3: dup 4: invokespecial #21 // Method org/programming/mitra/exercises/Employee."":()V
2.使用Class类的newInstance()方法
以使用Class类的newInstance()方法创建一个对象。此newInstance()方法调用no-arg构造函数来创建对象。
可以通过newInstance()通过以下方式创建对象:
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee").newInstance();
或者
Employee emp2 = Employee.class.newInstance();
51: invokevirtual #70 // Method java/lang/Class.newInstance:()Ljava/lang/Object;
3.使用构造方法类的newInstance()方法
与Class类的newInstance()方法类似,java.lang.reflect.Constructor类中有一个newInstance()方法可用于创建对象。我们还可以使用此newInstance()方法来调用参数化构造函数和私有构造函数。
Constructor