有效的Java:clone()方法的分析

极客 :

考虑一下有效Java项目11(明智地覆盖克隆)中的以下内容,其中乔什·布洛赫(Josh Bloch)解释了clone()合同出了什么问题

该合同存在许多问题。“没有调用构造函数”的规定太强了。行为良好的克隆方法可以调用构造函数来创建正在构建的克隆内部的对象。如果该类是最终的,则clone甚至可以返回由构造函数创建的对象。

有人可以通过“如果类是finalclone甚至可以返回由构造函数创建的对象”来解释Josh Bloch在第一段中所说的话什么是final有做clone()吗?

约旦:

如果一个类不是最终的,clone则必须返回其被调用最多的派生类。这对于构造函数无法使用,因为clone不知道要调用哪个。如果类是最终的,则它不能有任何子类,因此在克隆时调用其构造函数没有危险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章