我有一个简单的类,为更大,更庞大的类保存骨架。所有这些框架都是一个字符串ID,一个枚举类型和一些选项标志。将类枚举传递给克隆是否克隆安全?
我想能够克隆这个骨架,但我不知道枚举是否克隆安全(通过值传递)。我认为他们不是因为他们被视为类(通过引用传递)。将枚举传递给克隆是否安全?
实施例,为了清楚起见:
class A {
String id;
Enum state;
int flags;
A clone() {
A ret = new A();
ret.id = id;
ret.state = state; // Am I safe here?
ret.flags = flags;
return ret;
}
}
如果你的Java伪代码试图重写'Object.clone()',那么要小心:如果是这种情况,它没有正确实现!你不能在不破坏clone()的合约的情况下执行新的A()。如果你的方法与'Object.clone()'无关,那么你最好重命名它以避免混淆。 – 2012-01-17 01:15:08