Java – 不使用“new”关键字创建对象
Java – 不使用“new
”关键字创建对象
我们都知道如何创建任何类的对象。 在 Java 中创建对象的最简单方法是使用**new
**关键字。 让我们探讨一下 Java 中无需使用new
新关键字即可创建对象的其他方法。
Table of contents
Using Class.forName() and Class.newInstance()
ClassLoader loadClass()
Using Object.clone()
Deserialization
Using reflection
注意:在给定的示例中,我仅在编写伪代码。 要构建完整的,可以正常工作的示例代码,请阅读相关功能。
使用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();
使用反射创建新对象
反射也是在大多数可用框架中创建新实例的流行方法。
builder.newInstance();
或class.newInstance();
如果您认为我没有其他可能的方法,请告诉我。
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果