Heim > Java > javaLernprogramm > Kann Java Klassen nur anhand ihrer Namen instanziieren?

Kann Java Klassen nur anhand ihrer Namen instanziieren?

Patricia Arquette
Freigeben: 2024-12-02 12:35:22
Original
633 Leute haben es durchsucht

Can Java Instantiate Classes Using Only Their Names?

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();
Nach dem Login kopieren

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);
Nach dem Login kopieren

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:

  • Klasse nicht gefunden oder kann nicht geladen werden
  • Fehlen geeigneter Konstruktoren
  • Konstruktor Ausnahmen auslösen
  • Nicht öffentliche Konstruktoren
  • Sicherheitsmanager verhindert Reflexion

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage