实例化类的四种方式
實例化類有四種方式:
1)使用new操作符
2)調用Class對象的newInstance()方法
3)調用clone()方法,對現有實例的拷貝
4)通過ObjectInputStream的readObject()方法反序列化類
?1.new操作符
A a1 = new A();System.out.println("a1: " + a1);2.Class.forName()的newInstance方法和Constructor對象的newInstance()方法
?
Class<A> clazz = (Class<A>) Class.forName("com.bjsxt.singleton.A");Constructor<A> c = clazz.getDeclaredConstructor(null);A a2 = c.newInstance();System.out.println("a2: " + a2);A a3 = (A) Class.forName("com.bjsxt.singleton.A").newInstance();System.out.println("a3: " + a3);3.對象的clone方法
A a3 = (A) a1.clone();System.out.println("a3: " + a3);4.getObject反序列化
FileOutputStream fos = new FileOutputStream("d:/a.txt");ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(a1);oos.close();fos.close();ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/a.txt"));A a5 = (A) ois.readObject();ois.close();System.out.println("a5: " + a5);類A的具體代碼如下:
class A implements java.io.Serializable {public A clone() {return this;} }結果如下:
a1: com.bjsxt.singleton.A@1f6226a2: com.bjsxt.singleton.A@64ea66a3: com.bjsxt.singleton.A@158f9d3a4: com.bjsxt.singleton.A@1f6226a5: com.bjsxt.singleton.A@13f7281
轉載于:https://www.cnblogs.com/blogofcookie/p/5793986.html
總結
- 上一篇: 婚前贷款买的房,婚后一直是男方在供贷,这
- 下一篇: 宜昌将军装饰公司地址