Erstellen Sie eine Instanz innerhalb Abstrakte Klasse mit der Spiegelung

Ist es möglich, erstellen Sie eine Instanz von einer abgeleiteten Klasse in der abstrakten Vorfahren-Klasse mit der spiegelung
Sagen wir:

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()

 }

}

  • Hast du es versuchen? Scheint, wie es funktionieren würde.
  • Nein, es ist nicht möglich
  • Was passiert, wenn du versucht? Sie können dies tun, aber das ist eine ziemlich verdächtige design-Wahl.
  • Könnte es gerechtfertigt sein, wie eine copy-Methode.
  • Beachten Sie, dass Sie verschwenden Zeilen code: public Base createInstance() { return (Base) getClass().newInstance(); } ist alles, was Sie brauchen (Modul Ausnahmen).
  • Umm. Dass code nicht selbst kompilieren, auf den ersten Platz. Egal, was passiert, wenn du es ausprobiert?>

Schreibe einen Kommentar