Jeśli ten złożony obiekt jest zmienny lub zawiera zmienne części, to rozwiązanie jest takie samo jak w Javie. Sprawdź pytania Java & posty na ten temat i zrób to.
Jeśli wszystko jest niezmienne, to nie potrzebujesz i nie powinieneś niczego klonować. W najlepszym przypadku powinieneś zrobić płytką kopię obiektu, zmieniając tylko te pola, które wymagają zmiany, aw najgorszym przypadku użyć czegoś w rodzaju soczewek lub zamków do skopiowania jakiegoś głębokiego obiektu i propagowania zmiany w górę. Zobacz pytania na temat Scali na temat soczewek i zamków do tego.
który obiekt? To robi ogromną różnicę, co to jest. Może jest prosta droga, może jest trudna droga i być może w ogóle nie ma mowy (a to może być dobry powód!). –
Często najlepszym rozwiązaniem jest zaprojektowanie programu w taki sposób, aby uniknąć całkowitego klonowania. Dobre wsparcie Scala dla niezmiennych struktur danych czyni to szczególnie łatwym. –
Należy zauważyć, że jeśli obiekt jest klasą przypadku, istnieje metoda kopiowania generowana przez kompilator, która pozwala na pełne kopiowanie oraz nadpisywanie tylko niektórych pól za pomocą nazwanych parametrów. – mpilquist