Hãy xem xét mã dưới đây:
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'
Vì vậy, tôi muốn sao chép dum
đến dumtwo
và thay đổi dum
mà không ảnh hưởng dumtwo
. Nhưng đoạn mã trên không làm được điều đó. Khi tôi thay đổi một cái gì đó dum
, sự thay đổi tương tự cũng xảy ra dumtwo
.
Tôi đoán, khi tôi nói dumtwo = dum
, Java chỉ sao chép tham chiếu . Vì vậy, có cách nào để tạo một bản sao mới dum
và gán nó cho dumtwo
?