2010-01-04 29 views
0

當我被告知PMD,我想減少使用的接口,而不是執行coopling ...鬆散耦合:當我們需要可複製參數時,我們可以使用接口嗎?

在這種情況下,知道我需要一個可複製的,PARAM,我可以克服clone Dilemma(無clone()方法在Cloneable接口)??

public MyConstructor(ArrayList<E> myParam) { 
    this.myAttribute = (ArrayList<E>) myParam.clone(); 
} 
+0

@Allain:你好,我很想知道你在這個問題上編輯了什麼?我很新,所以我不熟悉這個編輯問題的概念... – 2010-01-04 01:18:52

+0

單擊「編輯......前」短語來查看修訂歷史記錄。 – trashgod 2010-01-04 04:30:00

回答

3

你不需要克隆這種方式;我會這樣做:

public MyConstructor(List<E> myParam) 
{ 
    this.myAttribute = new ArrayList<E>(myParam); 
} 
+1

請注意,這會產生一個ArrayList,它將爲所提供List的大小的110%分配足夠的空間。所以,這不完全是一個克隆。 – 2010-01-04 00:55:08

+1

的確如此,但我認爲它是有用的。 – duffymo 2010-01-04 01:09:44

+0

@duffymo&Allain:thx !!它完美地服務於我的目的!知道它不是一個真正的克隆也是很有趣的... – 2010-01-04 01:14:41

1

我不知道PMD,但這將是一個淺拷貝,而不是深拷貝。

相關問題