【发布时间】:2012-11-19 09:32:18
【问题描述】:
是否可以使用反射在抽象祖先类中创建派生类的实例 让我们说:
abstract class Base {
public Base createInstance(){
//using reflection
Class<?> c = this.getClass();
Constructor<?> ctor = c.getConstructor();
return ((Base) ctor.newInstance());
}
}//end Base
class Derived extends Base {
main(){
new Derived().createInstance()
}
}
【问题讨论】:
-
你试过了吗?似乎它会工作。
-
你尝试的时候发生了什么?您可以这样做,但这是一个相当可疑的设计选择。
-
@PeterLawrey 这可能是一种复制方法。
-
请注意,您正在浪费代码行:
public Base createInstance() { return (Base) getClass().newInstance(); }就是您所需要的(模块例外)。 -
嗯。该代码甚至一开始就无法编译。无论如何,当你尝试它时发生了什么?>
标签: java reflection abstract-class