java 深度複製和淺度複製
阿新 • • 發佈:2018-12-08
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