我有一种情况,我需要从该类的另一个实例创建一个类的新实例。它必须是一个新实例,而不是对旧实例的引用,因为新实例需要在不影响旧实例的情况下进行操作。
我得出的结论是,我的类中必须有一个构造函数,并且该类中使用的每种类型的每个类中都必须有一个构造函数,它将自己的类型作为参数,并从该参数创建新类型:
public class MainClass {
public Type0 type0;
public Type1 type1;
public Type2 type2;
MainClass(MainClass mc) {
type0 = new Type0(mc.type0);
type1 = new Type1(mc.type1);
type2 = new Type2(mc.type2);
}
}
public class Type0() {
public int i;
public SomeOtherType t;
Type0(Type0 t0) {
i = t0.i;
t = new SomeOtherType(t0.t);
}
}
. . .
这在 C++ 中会容易得多,我可以简单地说 newInstance = oldInstance。但是在 Java 中,从旧实例创建新实例的最佳实践是什么?这是我必须做的吗?在 Java 中,在每个类中都有这些类型的构造函数是最佳实践吗?还是有更好的方法来解决这个问题?