Java 松散耦合:当我们需要cloneables参数时,我们可以使用接口吗?

Java 松散耦合:当我们需要cloneables参数时,我们可以使用接口吗?,java,interface,clone,loose-coupling,pmd,Java,Interface,Clone,Loose Coupling,Pmd,正如我所建议的,我希望通过使用接口而不是实现来减少协作 在这种情况下,知道我需要一个可克隆参数,我能克服cloneable接口中的(noclone()方法)吗 公共MyConstructor(ArrayList myParam){ this.myAttribute=(ArrayList)myParam.clone(); } 你不需要那样克隆;我会这样做: public MyConstructor(List<E> myParam) { this.myAttribute = n

正如我所建议的,我希望通过使用接口而不是实现来减少协作

在这种情况下,知道我需要一个可克隆参数,我能克服
cloneable
接口中的(no
clone()
方法)吗

公共MyConstructor(ArrayList myParam){
this.myAttribute=(ArrayList)myParam.clone();
}

你不需要那样克隆;我会这样做:

public MyConstructor(List<E> myParam) 
{
    this.myAttribute = new ArrayList<E>(myParam);
}
公共MyConstructor(列出myParam)
{
this.myAttribute=新的ArrayList(myParam);
}

你不需要那样克隆;我会这样做:

public MyConstructor(List<E> myParam) 
{
    this.myAttribute = new ArrayList<E>(myParam);
}
公共MyConstructor(列出myParam)
{
this.myAttribute=新的ArrayList(myParam);
}

我不太了解PMD,但这将是一个浅拷贝,而不是深度拷贝

我不太了解PMD,但这将是一个浅拷贝,而不是深拷贝

请注意,这将生成一个ArrayList,它将为所提供列表的110%大小分配足够的空间。所以,它不完全是克隆。没错,但我认为它可以达到目的。@duffymo&Allain:thx!!它完全符合我的目的!!!知道它不是真正的克隆也很有趣……注意,这会生成一个ArrayList,它将为提供的列表的110%大小分配足够的空间。所以,它不完全是克隆。没错,但我认为它可以达到目的。@duffymo&Allain:thx!!它完全符合我的目的!!!知道它不是真的克隆人也很有趣…@Allain:你好,我很想知道你在这个问题上编辑了什么?我对SO很陌生,我不熟悉编辑问题的概念…点击短语
edited。。。ago
查看修订历史。@Allain:你好,我很想知道你在这个问题中编辑了什么?我对SO很陌生,我不熟悉编辑问题的概念…点击短语
edited。。。ago
以查看修订历史记录。