我有一個包含字符串字段和Map的POJO類。 我讀了關於克隆對象的Joshua Bloch Effective Java片段,但我認爲這種情況並非如此微不足道。 我有幾個POJO,我想用複製構造函數的方法克隆它們,但我不知道如何克隆映射,因爲值有一個對象?如何正確克隆對象類?
我知道這個對象可能是一個簡單的不可變對象,例如一個String類,但有時它可能是一個完全不同的POJO,甚至列表或映射。我認爲它可能工作的onyl方式是使用instanceof在構造函數中進行一些檢查,但它很醜陋(我必須檢查List,Map和每個POJO是否正確?)。
也許我應該改變我的方法來實現Cloneable接口?
我也看到了一個序列化的克隆方法,但我認爲這也是一個醜陋的解決方案,並且它的性能會比使用Copy構造器方法時糟糕。
你能給我一個建議,我應該如何克隆我的POJO?
爲什麼要克隆他們呢?特別是如果你甚至不知道它們是什麼類型。因爲你甚至不知道它們的類型,所以你無法修改它們。 –
18年來我從未在生產代碼中使用過clone()。 – EJP
爲什麼?因爲我有一個POJO「A」,其中包含具有不同屬性的POJO列表「B」,並且我想要完全不同的對象,一個新副本。我只需要它,因爲我想創建pojo「A」的幾個實例。那些POJO「A」應該在POJO「B」中具有不同的值,並且如果POJO「A」將參照相同的「B」POJO,那麼我將不能在不同的POJO「A」中設置不同的值。 –