假设我有一个名为 myCar 的对象,它是 Car 的一个实例。
myCar = new Car();
我将如何根据对象创建该类的新实例?假设我不知道 myCar 是从哪个类创建的。
otherObject = new myCar.getClass()(); // Just do demonstrate what I mean (I know this doesn't work)
更新
public class MyClass {
public MyClass(int x, int y, Team team) { }
public MyClass() { }
}
Object arg = new Object[] {2, 2, Game.team[0]};
try {
Constructor ctor = assignedObject.getClass().getDeclaredConstructor(int.class, int.class, Team.class);
ctor.setAccessible(true);
GameObject obj = (GameObject) ctor.newInstance(arg);
} catch (InstantiationException x) {
x.printStackTrace();
} catch (IllegalAccessException x) {
x.printStackTrace();
} catch (InvocationTargetException x) {
x.printStackTrace();
} catch (NoSuchMethodException x) {
x.printStackTrace();
}
我收到以下错误:
java.lang.IllegalArgumentException: wrong number of arguments
getDeclaredConstructor() 工作并找到我的构造函数与三个 args,但 newInstance(arg) 出于某种原因将无法工作,它说“参数数量错误”。知道为什么吗?