Weź pod uwagę następujące kwestie od Effective Java Item 11 (Zastępuj klon rozsądnie), gdzie Josh Bloch wyjaśnia, co jest nie tak z umową clone()
.Efektywna Java: Analiza metody clone()
Istnieje wiele problemów z tą umową. Przepis, że konstruktorzy "no nazywają się" jest zbyt silny. Dobrze zachowana metoda klonowania może wywoływać konstruktory , aby tworzyć obiekty wewnętrzne dla budowanego klonu. Jeśli klasa jest końcowa, klon może nawet zwrócić obiekt utworzony przez konstruktor.
Może ktoś wyjaśnić, co Josh Bloch mówi w akapicie pierwszym, przez „Jeśli klasa jest final
, clone
może nawet zwrócić obiekt utworzony przez konstruktora.” Co tutaj ma do czynienia z final
z clone()
?