Heim >Java >javaLernprogramm >Kann Java Klassen nur anhand ihrer Namen instanziieren?
Ist die Klasseninstanziierung nach Namen in Java möglich?
Beim Umgang mit Klasseninstanziierung können Umstände auftreten, in denen der Klassenname nur als bekannt ist eine Zeichenfolge. Um dieses Problem anzugehen, bietet Java zwei Ansätze zur Lösung dieser Aufgabe.
Methode 1: Instanziieren mit einem Konstruktor ohne Argumente
Für Klassen mit einem Konstruktor ohne Argumente: Java ermöglicht die Objekterstellung mit der Methode Class.forName() zum Abrufen des Klassenobjekts und der Methode newInstance() zum Erstellen eines Instanz.
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
Methode 2: Umgang mit Klassen mit oder ohne No-Arg-Konstruktor
Ein umfassenderer Ansatz, der alle Szenarios abdeckt, einschließlich Klassen ohne No-Argument Konstruktoren umfasst das Abfragen des Klassenobjekts nach seinem Konstruktor und das Aufrufen von newInstance() darauf.
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Beides Methoden nutzen die Reflexionsfähigkeiten von Java. Es ist jedoch wichtig, Ausnahmen zu behandeln, die während dieses Prozesses auftreten können, wie zum Beispiel:
Das obige ist der detaillierte Inhalt vonKann Java Klassen nur anhand ihrer Namen instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!