今天来盘点一下除了使用 "new" 关键字创建对象,还有什么方法可以创建Java对象呢?
因为是创建对象,所以这里ioc容器不在范围内
我们先看一下常用的new关键字创建
ClassA object = new ClassA();
第一种方式就是使用Class.forName()创建对象
ClassA object = (ClassA) Class.forName("com.demo.ClassA").newInstance();
第二种方法使用clone()
ClassA objectA = new ClassA();
ClassA objectB = objectA.clone();
第三种方法是运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
ObjectInputStream inStream = new ObjectInputStream(inputStream);
ClassA object = (ClassA) inStream.readObject();
Tips: Java.io.ObjectOutputStream代表对象输出流,其方法writeObject(Object obj)可以实现对象的序列化,将得到的字节序列写到目标输出流中。Java.io.ObjectInputStream代表对象输入流,其readObject()方法能从源输入流中读取字节序列,将其反序列化为对象,并将其返回。
好了,这几种就是我了解的创建对象的方法,如果还有其他方法欢迎补充!