我希望做类似的事情:
SubClass c = var.getClass();
SuperClass varCopy = new SubClass();
换句话说,我知道varCopy的超类在编译时是什么,但我不确定将实例化哪个子类。有没有办法在Java中做到这一点?
谢谢!
答案 0 :(得分:9)
你可以沿着这些方向做点什么。
Class<? extends SuperClass> clazz = var.getClass();
SuperClass varCopy = clazz.newInstance();
请注意,如果clazz.newInstance()
没有默认的空构造函数,则会抛出IllegalAccessException。