當我被告知PMD,我想減少使用的接口,而不是執行coopling ...鬆散耦合:當我們需要可複製參數時,我們可以使用接口嗎?
在這種情況下,知道我需要一個可複製的,PARAM,我可以克服clone Dilemma(無clone()
方法在Cloneable
接口)??
public MyConstructor(ArrayList<E> myParam) {
this.myAttribute = (ArrayList<E>) myParam.clone();
}
當我被告知PMD,我想減少使用的接口,而不是執行coopling ...鬆散耦合:當我們需要可複製參數時,我們可以使用接口嗎?
在這種情況下,知道我需要一個可複製的,PARAM,我可以克服clone Dilemma(無clone()
方法在Cloneable
接口)??
public MyConstructor(ArrayList<E> myParam) {
this.myAttribute = (ArrayList<E>) myParam.clone();
}
你不需要克隆這種方式;我會這樣做:
public MyConstructor(List<E> myParam)
{
this.myAttribute = new ArrayList<E>(myParam);
}
請注意,這會產生一個ArrayList,它將爲所提供List的大小的110%分配足夠的空間。所以,這不完全是一個克隆。 – 2010-01-04 00:55:08
的確如此,但我認爲它是有用的。 – duffymo 2010-01-04 01:09:44
@duffymo&Allain:thx !!它完美地服務於我的目的!知道它不是一個真正的克隆也是很有趣的... – 2010-01-04 01:14:41
我不知道PMD,但這將是一個淺拷貝,而不是深拷貝。
@Allain:你好,我很想知道你在這個問題上編輯了什麼?我很新,所以我不熟悉這個編輯問題的概念... – 2010-01-04 01:18:52
單擊「編輯......前」短語來查看修訂歷史記錄。 – trashgod 2010-01-04 04:30:00