我想创建一个方便的超类,它将创建一个运行它的任何子类的实例,而不必对子类的名称进行硬编码。最快的方法是什么?
我们可以假设子类的构造函数将具有相同的签名,例如没有参数。
class Main {
public static void main (String [] args) {
Main m = new NAME-OF-SUBCLASS();
}
}
class MainSub1 extends Main { /*...*/ }
class MainSub2 extends Main { /*...*/ }
因此,当从 MainSub1 ($ java MainSub1
从命令行)调用 main 时,会创建一个 MainSub1 对象,等等。
当我写这篇文章时,我发现这个线程接受的答案说它不能完成,但它当然可以,不知何故,通过反射或其他东西,对吧?