5

我希望做类似的事情:

SubClass c = var.getClass();
SuperClass varCopy = new SubClass();

换句话说,我知道 varCopy 的超类在编译时会是什么,但我不确定哪个子类会被实例化。有没有办法在 Java 中做到这一点?

谢谢!

4

1 回答 1

10

你可以按照这些思路做一些事情。

Class<? extends SuperClass> clazz = var.getClass();
SuperClass varCopy = clazz.newInstance();

请注意,clazz.newInstance()如果它没有默认的空构造函数,则会抛出 IllegalAccessException。

于 2013-04-12T02:03:10.837 回答