Pertimbangkan kode di bawah ini:
DummyBean dum = new DummyBean(); dum.setDummy("foo"); System.out.println(dum.getDummy()); // prints 'foo' DummyBean dumtwo = dum; System.out.println(dumtwo.getDummy()); // prints 'foo' dum.setDummy("bar"); System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'Jadi, saya ingin menyalin dum ke dumtwo dan mengubah dum tanpa memengaruhi dumtwo. Tetapi kode di atas tidak melakukan itu. Ketika saya mengubah sesuatu di dum, perubahan yang sama juga terjadi di dumtwo. Saya kira, ketika saya mengatakan dumtwo = dum, Java hanya menyalin referensi. Jadi, apakah ada cara untuk membuat salinan dum yang baru dan menugaskannya ke dumtwo?
atau respon:
Jawaban
Object itu bukan value-type tapi reference-type.
Kalau kita butuh object yang sama tapi beda reference, kita perlu meng-'copy' object tersebut jadi object baru.
Istilah umunya Deep-Copy atau ada juga dengan dikenal sebagai Shallow and Lazy-Copy.
Untuk kasus ini, ya perlu di-'copy' object-nya.
How to Make a Deep Copy of an Object in Java
Kalau kita butuh object yang sama tapi beda reference, kita perlu meng-'copy' object tersebut jadi object baru.
Istilah umunya Deep-Copy atau ada juga dengan dikenal sebagai Shallow and Lazy-Copy.
Untuk kasus ini, ya perlu di-'copy' object-nya.
How to Make a Deep Copy of an Object in Java
Login untuk gabung berdiskusi
Pertanyaan Lainnya
Top Kontributor
- @ahanafi
813 Kontribusi 551 Poin
- @Nandar
647 Kontribusi 204 Poin
- @dianarifr
642 Kontribusi 316 Poin
- @Saputroandhi
509 Kontribusi 162 Poin
- @dodipsitorus
412 Kontribusi 145 Poin