Java 如何深度复制多个类的对象数组
正如标题所示,我该如何做到这一点?我在互联网上到处都搜索过,也许我没有找到合适的词或什么的。但是请帮帮我Java 如何深度复制多个类的对象数组,java,arrays,deep-copy,Java,Arrays,Deep Copy,正如标题所示,我该如何做到这一点?我在互联网上到处都搜索过,也许我没有找到合适的词或什么的。但是请帮帮我 Object[]FlyingObject=新建FlyingObject[3]; FlyingObject[0]=新直升机(); FlyingObject[1]=新飞机(); FlyingObject[2]=新无人机(); 公共静态对象[]CopyFlyingObject(对象[]C){ 对象FlyingObjectCopy=新对象(C.长度); //…我不知道如何从这里继续下去 } 不允许
Object[]FlyingObject=新建FlyingObject[3];
FlyingObject[0]=新直升机();
FlyingObject[1]=新飞机();
FlyingObject[2]=新无人机();
公共静态对象[]CopyFlyingObject(对象[]C){
对象FlyingObjectCopy=新对象(C.长度);
//…我不知道如何从这里继续下去
}
不允许使用clone()
,也不允许您查找类的名称。我在我的其他类中有copy构造函数,但我不知道在使用object时如何调用它,特别是对于整个数组中包含未知类的对象数组
编辑:
我的子类代码
'''java
int speed;
double price;
Helicopter(){
speed = 0;
price = 0.0;
}
Helicopter(Helicopter c){
speed = c.speed;
price = c.price;
}
public Airplane extends Helicopter{
String brand;
Airplane(){
super();
brand = "";
}
Airplane(Airplane c){
super(C);
brand = c.brand;
}
public String getBrand(){
return brand;
}
}
public Drone{
//practically the same for here
}
'''
是否允许在FlyingObject接口上声明复制方法?你知道所有的对象都实现了这个接口,所以你可以为每个对象调用一个方法。它没有指定不允许复制方法。如何使用复制方法?问题是希望我们使用在类中创建的复制构造函数。也许我根本不应该使用对象数组,但我没有主意你应该包括你的具体子类的代码,显示你想要使用的复制构造函数。我想你可以反射地找到复制构造函数并调用它,如果练习的目的是教你反射。谢谢你的回答,我已经编辑并向您展示了我的子类的代码。子类并没有什么特别之处,我仍然不知道如何使用对象数组和不同类型的类调用复制构造函数。