Dlaczego muszę zastąpić klon, jeśli chcę klonować klasy? Wszystkie klasy rozciąga się od Object
, więc dlaczego mam zastąpić metodę klonowania obiektu? Dlaczego nie mogę po prostu wywołać oryginalnej metody klonowania obiektów?Dlaczego muszę zastąpić klon, jeśli chcę klonować klasę?
6
A
Odpowiedz
8
Jest to jedna z wielu "wad projektowych" w JDK.
Clonable
powinien być interfejs z metodą clone()
, ale zamiast to marker interface i Object
ma „nic nie robić” Wdrożenie metody clone()
... i jesteś w lewo z pytaniem.
Jeśli jesteś zainteresowany, this answer wymienia kilka innych "błędów" w języku Java.
1
Zobacz tutaj: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html
Wywoływanie metody klonowania obiektu na przykład, że nie implementuje interfejsu Cloneable wyniki w CloneNotSupportedException wyjątków wyrzucane.
Także myślę, ta dyskusja będzie pomocne dla Ciebie: Confusion about cloneable interface and object.clone() in java
Powiązane problemy
- 1. Co muszę zrobić, jeśli chcę zainstalować nową wersję GHC?
- 2. Klon tylko jeden oddział
- 3. Jak klonować obiekt BufferedImage
- 4. Czy muszę dołączyć zestaw testowy SDK do mojej aplikacji, jeśli chcę tylko wysłać test beta?
- 5. Dlaczego musimy przypisać klon do nowej zmiennej?
- 6. Jak zastąpić klasę Http w RC6?
- 7. Dlaczego zastąpić wndproc
- 8. Jak git klonować konkretny tag tylko bez otrzymywania całego repo?
- 9. Dlaczego nie muszę używać Adapter.notifyDataSetChanged()?
- 10. Jak klonować() StringBuilder
- 11. Klon() ma chroniony dostęp - publiczny klon obiektu()
- 12. appendTo/prependTo, ale zamiast dodawać chcę zastąpić treść. htmlTo?
- 13. Dlaczego klasa LinearLayout instance.getLayoutParams ma nieprawidłową klasę?
- 14. Jak zastąpić zaimportowaną klasę Pythona dla wszystkich wywołań
- 15. Dlaczego muszę przechowywać oba obiekty, jeśli adres jest zagnieżdżony w User?
- 16. Klon() w języku Java
- 17. jQuery: Usuń klasę, jeśli kliknięto inny element.
- 18. Jak klonować z GitHub
- 19. Dlaczego warto zastąpić prywatne dziedziczenie?
- 20. Dlaczego muszę określić własną klasę podczas używania super() i czy istnieje sposób na obejście tego?
- 21. Jak klonować() element n razy?
- 22. MongoDB - obiekty? Dlaczego muszę _id w łącznej
- 23. Dlaczego muszę wywoływać spyOn w beforeEach()?
- 24. Czy powinienem zrzucić BinaryReader, jeśli chcę zachować "zawinięty" strumień?
- 25. Dlaczego muszę zawinąć ten kod w rzutowanie?
- 26. Dlaczego Księga mówi, że muszę rzucić malloc?
- 27. Jak mogę klonować/duplikować UIView na iOS?
- 28. Dlaczego muszę zlokalizować $ @ przed użyciem eval?
- 29. Zend_Form_Element: dodaj klasę, jeśli zawiera błędy
- 30. jQuery - Jeśli element ma klasę, wykonaj to
Możesz chcieć kasy tę odpowiedź także: http://stackoverflow.com/questions/3652748/cloning-objects-in-java- 3 pytania/3652767 # 3652767 – nkr
Zawsze możesz napisać metodę kopiowania w swojej klasie. Nie musisz niczego przesłonić. –