พิจารณารหัสด้านล่าง:
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'
ดังนั้นผมต้องการที่จะคัดลอกdum
ไปdumtwo
และการเปลี่ยนแปลงได้โดยไม่ต้องมีผลกระทบต่อdum
dumtwo
แต่รหัสข้างต้นไม่ได้ทำอย่างนั้น เมื่อฉันเปลี่ยนบางสิ่งในสิ่งdum
เดียวกันก็เกิดขึ้นdumtwo
เช่นกัน
ผมคิดว่าเมื่อฉันพูดdumtwo = dum
, Java สำเนาการอ้างอิงเท่านั้น ดังนั้นมีวิธีการสร้างสำเนาใหม่dum
และกำหนดให้dumtwo
?