Cloneまだ曖昧
////////////////////////
import java.math.BigDecimal;
import java.util.Date;
public class Test {
public static void main(String[] args) {
CloneTest c1 = new CloneTest();
c1.setStr("1");
c1.setDt(new Date(0, 0, 1));
c1.setBd(new BigDecimal(1));
c1.setI(1);
c1.setObj(new Obj("111"));
CloneTest c2 = (CloneTest)c1.clone();
c2.setStr("2");
c2.setDt(new Date(0, 1, 2));
c2.setBd(new BigDecimal(2));
c2.setI(2);
Obj obj2 = c1.getObj();
obj2.setSs("222");
c2.setObj(obj2);
System.out.println(c1.toString());
System.out.println(c2.toString());
}
}
////////////////////////
public class Obj {
public Obj(String ss){
this.ss = ss;
}
private String ss;
/**
* ssを取得します。
* @return ss
*/
public String getSs() {
return ss;
}
/**
* ssを設定します。
* @param ss ss
*/
public void setSs(String ss) {
this.ss = ss;
}
@Override
public String toString() {
return this.ss;
}
}
////////////////////////
import java.math.BigDecimal;
import java.util.Date;
public class CloneTest implements Cloneable {
private String str;
private Date dt;
private BigDecimal bd;
private int i;
private Obj obj;
/**
* strを取得します。
* @return str
*/
public String getStr() {
return str;
}
/**
* strを設定します。
* @param str str
*/
public void setStr(String str) {
this.str = str;
}
/**
* dtを取得します。
* @return dt
*/
public Date getDt() {
return dt;
}
/**
* dtを設定します。
* @param dt dt
*/
public void setDt(Date dt) {
this.dt = dt;
}
/**
* bdを取得します。
* @return bd
*/
public BigDecimal getBd() {
return bd;
}
/**
* bdを設定します。
* @param bd bd
*/
public void setBd(BigDecimal bd) {
this.bd = bd;
}
/**
* iを取得します。
* @return i
*/
public int getI() {
return i;
}
/**
* iを設定します。
* @param i i
*/
public void setI(int i) {
this.i = i;
}
/**
* objを取得します。
* @return obj
*/
public Obj getObj() {
return obj;
}
/**
* objを設定します。
* @param obj obj
*/
public void setObj(Obj obj) {
this.obj = obj;
}
@Override
public String toString() {
return new
StringBuilder().append(str).append("/").append(dt).append("/").append(bd).append("/").append(i).append("/").append(obj).toString();
}
@Override
protected Object clone() {
try{
return super.clone();
}catch(CloneNotSupportedException e){
throw new RuntimeException(e);
}
}
}
////////////////////////
↓
1/Mon Jan 01 00:00:00 JST 1900/1/1/222
2/Fri Feb 02 00:00:00 JST 1900/2/2/222