Instanziieren von Klassen nach Namen in Java
Java bietet zwei Methoden zum Instanziieren von Klassen durch Übergabe ihres Zeichenfolgennamens:
1. Verwenden von Reflection mit einem Konstruktor ohne Argumente
Wenn die Zielklasse einen Konstruktor ohne Argumente hat, können Sie die Methode Class.forName() verwenden, um das Klassenobjekt abzurufen. Rufen Sie anschließend die Methode newInstance() auf, um eine Instanz zu erstellen:
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
2. Verwenden von Reflection für Klassen mit oder ohne Konstruktoren ohne Argumente
Für einen umfassenderen Ansatz, der für Klassen mit oder ohne Konstruktoren ohne Argumente funktioniert, führen Sie die folgenden Schritte aus:
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Hinweis:Beide Ansätze beinhalten Reflexion , die mit Bedacht verwendet werden sollte, da sie die Ausnahmebehandlung und Sicherheitsbeschränkungen von Java umgehen kann.
Das obige ist der detaillierte Inhalt vonWie kann ich Java-Klassen nur mit ihren String-Namen instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!