获取对象类并实例化新实例

时间:2013-04-12 01:57:19

标签: java reflection subclass

我希望做类似的事情:

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

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

谢谢!

1 个答案:

答案 0 :(得分:9)

你可以沿着这些方向做点什么。

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

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