JoshBlochがclone()
コントラクトの何が問題になっているのかを説明しているEffectiveJavaItem 11(クローンを慎重にオーバーライドする)の次のことを考慮してください。
この契約には多くの問題があります。「コンストラクターが呼び出されない」という規定は強すぎます。正常に動作するクローンメソッドは、コンストラクターを呼び出して、構築中のクローンの内部にオブジェクトを作成できます。クラスがfinalの場合、cloneはコンストラクターによって作成されたオブジェクトを返すこともできます。
Josh Blochが最初の段落で言っていることを誰かが「クラスがの場合、コンストラクターによって作成されたオブジェクトを返すことさえできる」と説明できますfinal
かclone
?こことは何の関係final
がありclone()
ますか?