findbug java clone 问题

javamode 2010-03-20 06:08:05
我现在需要深度复制 重写了clone方法 方法内容自己写的

public Object clone() {
GoodsFinanceBalanceElement o = new GoodsFinanceBalanceElement();
return BeansHelper.copyBeans(this, o);
}
像这样一段代码

当使用findbug检测会提示
A.clone() does not call super.clone()

如果方法体改为super.clone(); 不在提示

这个问题该怎么解决呢

...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinguohit 2010-03-22
  • 打赏
  • 举报
回复
重写clone方法,需要在类中实现Cloneable接口,楼主会不会是忘了实现这个借口了啊......
AC903919 2010-03-22
  • 打赏
  • 举报
回复
不知道,帮顶一下,学习~~~~
ladybirds2008 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ark032425 的回复:]
findbug 的检测流程是这样的,检查是否调用了super.clone()
如果你自己的copy可行的话可以忽略这个警告。
建议使用深克隆,这样通行。 自己写的拷贝方法只有自己才知道,而且还写在clone方法里。容易引起误解。
这对程序执行结果没有影响,但对看程序的其他人可能会产生误导。
[/Quote]这个 克隆 又是怎么个解释啊。。。
帮楼主顶,,,,转辛苦费。。。
Ark032425 2010-03-22
  • 打赏
  • 举报
回复
findbug 的检测流程是这样的,检查是否调用了super.clone()
如果你自己的copy可行的话可以忽略这个警告。
建议使用深克隆,这样通行。 自己写的拷贝方法只有自己才知道,而且还写在clone方法里。容易引起误解。
这对程序执行结果没有影响,但对看程序的其他人可能会产生误导。
javamode 2010-03-22
  • 打赏
  • 举报
回复
我自己顶一下。
  • 打赏
  • 举报
回复
直接super.clone()就可以实现深拷贝了……
gcw633 2010-03-22
  • 打赏
  • 举报
回复
没有用过,友情帮顶下
abc130314 2010-03-22
  • 打赏
  • 举报
回复
GoodsFinanceBalanceElement o = (GoodsFinanceBalanceElement) super.clone();
return BeansHelper.copyBeans(this, o);
healer_kx 2010-03-20
  • 打赏
  • 举报
回复
深copy是要调用super的clone啊,就这样吧。

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧