Use Object.clone()Tag(s): Language
Consider the following example.
import java.util.Date; class MyData { private Date aDate; MyData() { aDate = new Date(); } public Date getDate() { return aDate; } public void setdate(Date d) { aDate = d; } }
public class DemoClone { public static void main(String args[]) { MyData mydata = new MyData(); Date d = mydata.getDate(); System.out.println(d); d.setTime(1000); System.out.println(d); System.out.println(mydata.getDate()); // Sat Apr 19 23:17:43 EDT 2003 // Wed Dec 31 19:00:01 EST 1969 // Wed Dec 31 19:00:01 EST 1969 which is no good } }
import java.util.Date; class MyData { private Date aDate; MyData() { aDate = new Date(); } public Date getDate() { return (Date)aDate.clone(); } public void setdate(Date d) { aDate = d; } }
public class DemoClone { public static void main(String args[]) { MyData mydata = new MyData(); Date d = mydata.getDate(); System.out.println(d); d.setTime(1000); System.out.println(d); System.out.println(mydata.getDate()); // Sat Apr 19 23:17:43 EDT 2003 // Wed Dec 31 19:00:01 EST 1969 // Sat Apr 19 23:17:43 EDT 2003 which is good } }
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com