什麽情况下用Clone方法?

大家好:

有个问题一直迷惑我,既然对象可以new一个出来,为什麽要有Clone方法,他比new出来的对象有什麽优势吗?或者说什麽情况下用clone方法?实现cloneable接口?

如果什么时候你拿到一个对象,不知道其中的具体数据,但是想要一个一模一样的,那时候就用clone了

可是如果我不知道其中的具体数据和操作,又怎麽知道该不该用他呢?更谈不上Clone一个了?

你买了一太电脑,我想用,你肯定是不给了,因为我会把你的数据给删掉
所以你Clone一个给我

有一种情况需要这样使用。如果你的类中有这样一个方法

public static List getList(){return someList;}

如果系统中的其他地方调用了

getList().clear();
,那么类中的静态变量
someList
就真的被清空了。


这种操作有时是不希望发生的,这是可以使用clone方法,在get中返回

someList
的副本。

public static List getList(){return someList.clone();}

偶可没说你连操作都不知道
你当然知道这个对象的接口,只是不知道内部数据和实现。