对于序列化,将排除瞬态字段。克隆有没有类似的关键词?如何从克隆中排除字段?
public class Foo implements Cloneable {
private Integer notInClone;
}
答案 0 :(得分:5)
由于必须实施clone()
,如果您希望它是公开的(它不属于Cloneable
界面,并且protected
位于Object
public Object clone() throws CloneNotSupportedException {
Foo res = (Foo)super.clone();
res.notInClone = null; // Do the cleanup for fields that you wish to exclude
return res;
}
}您将有机会清除代码中不需要的字段:
google-cloud-vision
答案 1 :(得分:4)
根据我的知识,没有特定的注释可以做到这一点。
您可以覆盖Object#clone
方法,并在投射后在返回的null
上有选择地将不可克隆字段的值设置为Object
。
克隆对象仍然会显示该字段,因为它应该显式地转换为同一个类,但该值将为null
。