当我被告知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