当前位置:360文档网>专题范文 > 公文范文 > 2023年度Java中创建对象5种方法3篇

2023年度Java中创建对象5种方法3篇

发布时间: 2025-05-14 18:24:49 来源:网友投稿

Java中创建对象的5种方法1  与使用class类的newInstance()方法相似,java.lang.reflect.Constructor类中有一个可以用来创建对象的newInstance下面是小编为大家整理的2023年度Java中创建对象5种方法3篇,供大家参考。

2023年度Java中创建对象5种方法3篇

Java中创建对象的5种方法1

  与使用class类的newInstance()方法相似,java.lang.reflect.Constructor类中有一个可以用来创建对象的newInstance()函数方法。通过使用这个newInstance()方法我们也可以调用参数化构造函数和私有构造函数。

  Constructor constructor = Employee.class.getConstructor();

  Employee emp3 = constructor.newInstance();

  111: invokevirtual #80 // Method java/lang/reflect/Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;

  这些 newInstance() 方法被认为是创建对象的反射手段。实际上,内部类的newInstance()方法使用构造函数类的 newInstance() 方法。这就是为什么后者是首选并且使用不同的框架如Spring, Hibernate, Struts等。

Java中创建对象的5种方法2

  实际上无论何时我们调用clone() 方法,JAVA虚拟机都为我们创建了一个新的对象并且复制了之前对象的内容到这个新的对象中。使用 clone()方法创建对象不会调用任何构造函数。

  为了在对象中使用clone()方法,我们需要在其中实现可克隆类型并定义clone()方法。

  Employee emp4 = (Employee) emp3.clone();

  162: invokevirtual #87 // Method org/programming/mitra/exercises/Employee.clone ()Ljava/lang/Object;

Java中创建对象的5种方法3

  无论何时我们对一个对象进行序列化和反序列化,JAVA虚拟机都会为我们创建一个单独的对象。在反序列化中,JAVA虚拟机不会使用任何构造函数来创建对象。

  对一个对象进行序列化需要我们在类中实现可序列化的接口。

  ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));

  Employee emp5 = (Employee) in.readObject();

  261: invokevirtual #118 // Method java/io/ObjectInputStream.readObject:()Ljava/lang/Object;

  正如我们在以上的字节代码片段中所看到的,除第一种被转换为一个新的函数和一个 invokespecial 指令以外,其它4种方法都被调用并转换为invokevirtual。

推荐访问:

版权所有:360文档网 2013-2025 未经授权禁止复制或建立镜像[360文档网]所有资源完全免费共享

Powered by 360文档网 © All Rights Reserved.。备案号:京ICP备13037083号-1