假设我有两个类,Axon和Neuron,其中Axon有一个Neuron类型的数组,而Neuron有一个Axon类型的ArrayLists:
public class Axon {
public Axon(Neuron n1, Neuron n2) {
pair = new Neuron[2];
pair[0] = n1;
pair[1] = n2;
strength = 0;
}
public Neuron[] pair;
public double strength;
public class Neuron {
public Neuron() {
axons = new ArrayList<>();
inputs = new ArrayList<>();
used = new ArrayList<>();
override = -1;
}
public ArrayList<Axon> axons;
public ArrayList<Double> inputs;
public ArrayList<Axon> used;
public double override;
}
如何在每个类的构造函数中为这些对象创建深度复制方法,以便新Axon中的字段引用新神经元,新神经元中的字段引用新Axons,而不会导致无限循环实例化?我试图避免使用其他深度复制方法,例如序列化,以避免性能瓶颈。