public class Foo{
private String a;
private int b;
public Foo(Foo foo){
this.a = foo.a;
this.b = foo.b;
}
}
我在工作中做了一小部分代碼..我的同事看到了這一點,並給了我「你不應該呼吸」的樣子,出去約30分鐘冷靜下來。 (我是一個新的畢業生)
我一直在試圖找出什麼是我犯的可恥的錯誤..這是不成功的。
請問有人請解釋爲什麼這是一個不好的做法(或白癡)?
我這樣做的原因是該類有許多參數,我不希望每次需要初始化此對象時都要傳遞3行參數(使用基本參數)。我們需要傳遞一個實體類(它使用的是實體類而不是實體類)來初始化一個事務對象(正如我們在工作中所稱的那樣)。
我也有一個默認的構造函數。
謝謝!
它被稱爲_copy constructor_,我看不出有什麼本質上可恥它創建Foo類的實例;它比依靠_clone_好得多; http://stackoverflow.com/questions/2427883/clone-vs-copy-constructor-which-is-recommended-in-java – 2014-09-22 10:49:02
你將如何使用這個構造函數? '新Foo(新Foo(新Foo(...))''? – stuXnet 2014-09-22 10:49:33
您至少需要一個默認構造函數或工廠方法或類似的東西。正如guido所說,如果你想製作一個克隆,那麼帶有這個類的構造函數是非常有用的。 – stuXnet 2014-09-22 10:51:04