1. 程式人生 > >java 深度複製和淺度複製

java 深度複製和淺度複製

Java淺度複製是值引用的複製,而不是值的複製。

java深度複製才是值的複製。

 1.其中,Cloneable介面必須實現,且重寫該clone方法,重寫clone方法且改為範圍改成public

@Data
public class Configuration extends BaseEntity implements Cloneable{

	private String name;

	private String code;

	private Boolean enable;

	private String configValue;

	@Override
	public Object clone() throws CloneNotSupportedException {

		return super.clone();
	}
}

2.測試類

@Test
	public void test() throws CloneNotSupportedException {
		Configuration oldC = new Configuration();
		Configuration newC = new Configuration();
		oldC.setCode("oldCode");
		oldC.setConfigValue("oldConfig");
		
		newC = (Configuration) oldC.clone();
		
		newC.setCode("newCode");
		oldC.setConfigValue("newConfig");
		System.out.println("old: " + oldC.getCode());
		System.out.println("new: " + newC.getCode() + "\n");
		System.out.println("oldConfig: " + oldC.getConfigValue());
		System.out.println("newConfig: " + newC.getConfigValue());
		

	}

3.列印結果

old: oldCode
new: newCode

oldConfig: newConfig
newConfig: oldConfig