我有三门课:
public abstract class X{
....
}
public class Y extends X{
clone(){}
.....
}
public class Z extends X{
clone(){}
.....
}我有一个包含Z或Y对象的Set<X> set。如果我想克隆集合中的某个元素,我需要使用ifs吗?
for(X x:set){
if(x.getClass().getSimpleName().equals("Y")){
Y n = (Y) x
n.clone();
}
}我想知道是否有更简单的方法
发布于 2016-04-29 09:24:38
如果您只想克隆Y对象,是的,在这里使用if可能是最简单的方法,您应该使用instanceof
for(X x:set){
if(x instanceof Y)){
Y n = (Y) x
n.clone();
}
}发布于 2016-04-29 09:26:54
使类X实现Cloneable。然后,只需按建议使用实例的调用对象上的克隆()即可。
https://stackoverflow.com/questions/36934363
复制相似问题