2010-01-04 57 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,但这将是一个浅拷贝,而不是深拷贝。

相关问题