首页 > 解决方案 > Java中具有大量子类的类的深拷贝

问题描述

我有这门课

class Cars implements Transport, Serializable, Cloneable {
   private String type;
   private Models[] cars;
   private int number;
   private static final long serialVersionUID = 1L;

   Cars(String type, int number){
       this.type = type;
       this.number = number;
       cars = new Models[number];
       for (int i = 0; i < number; i++){
           cars[i] = new Models("default"+i, Double.NaN);
       }
   }
    private class Models implements Serializable{
       private String model;
       private double price;

我需要覆盖 clone() 以使用 super.clone() 深度复制此对象。我怎样才能做到这一点?

标签: javaclassobjectclone

解决方案


您可能正在寻找https://www.baeldung.com/java-deep-copy中给出的内容

clone() 方法将返回一个浅拷贝。您必须使用新对象手动填充这个浅拷贝的可变字段。这将使您的副本成为深层副本。


推荐阅读