Java 之 创建不带“ new”关键字的对象

我们都知道如何创建任何类的对象。在Java中创建对象的最简单方法是使用new关键字。让我们探索Java中无需使用新关键字即可创建对象的其他方法。

目录

使用Class.forName()和Class.newInstance()
ClassLoader loadClass()
使用Object.clone()
反序列化
使用反射

注意:在给定的示例中,我仅在编写伪代码。要构建完整的,可以正常工作的示例代码,请阅读相关功能。

使用Class.newInstance()创建对象

Class ref = Class.forName("DemoClass");
DemoClass obj = (DemoClass) ref.newInstance();

Class.forName()将类加载到内存中。要创建此类的实例,我们需要使用newInstance()

使用类加载器的loadClass()创建对象

就像上面的方法一样,类加载器的loadClass()方法也做同样的事情。它使用相同类的现有实例创建类的新实例。

instance.getClass().getClassLoader().loadClass("NewClass").newInstance();

使用Object.clone()创建对象

这也是拥有新的类的独立实例的方法。

NewClass obj = new NewClass();
NewClass obj2 = (NewClass) obj.clone();

使用序列化和反序列化创建新对象

如果您已读完本文,则可以理解序列化和反序列化也是在系统中拥有类的另一个实例的一种方式。

ObjectInputStream objStream = new ObjectInputStream(inputStream);
 NewClass obj = (NewClass ) inStream.readObject();

使用反射创建新对象

反射也是在大多数可用框架中创建新实例的 popular 方法。

builder.newInstance(); 或
class.newInstance();

如果您认为我没有其他可能的方法,请告诉我。

saigon has written 1445 articles

Leave a Reply