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