我有点像 Java N00B,但我对克隆很困惑。
考虑以下不正确的类
class blah {
public blah(Collection<Integer> c){
member_collection = c.clone(); //the clone here is defensive
}
private final Collection<Integer> member_collection;
}
我想我想做的很清楚。
我理解为什么找不到 clone() 符号:clone 不是任何可能的集合中的公共方法。但是,在我想要使用的任何具体类中,我只想告诉编译器。
我确定我不是第一个想要克隆通用集合的人,但我看过的教程只解释了为什么你不能克隆集合,而不是如何解决这个问题。我已经尝试过使用 getClass() 和强制转换的 hacky 东西,但是这些通常需要我制作丑陋的 try-catch 块,而且很难确保一个初始化(指针 member_collection)是最终的!
我真正想做的是以某种方式将这些信息放入类型中。有没有很好的方法来做到这一点?
谢谢!