实现 Cloneable 需要注意

产品Product里面包含BaseInfo对象:Product(productName,companyName,baseinfo)如果implement Cloneable  需要实现  

 注意强转类型,

 这时实例clone = product1.clone()获得备份,通过输出两者hashCode()发现product1与clone 共享baseinfo,baseinfo为浅拷贝。
解决方法,BaseInfo也implement Cloneable ,克隆Product后也克隆他的Baseinfo,把备份的baseinfo set成备份的product的baseinfo

猜你喜欢

转载自www.cnblogs.com/oo-llm/p/12045380.html