Gibt es in Java eine Möglichkeit zum programmgesteuerten Importieren einer Klasse mit ihrem vollständigen Namen als String (d. H. Wie "com.mydummypackage.MyClass"
)?Programmgesteuertes Importieren der Java-Klasse
Antwort
Wenn von „Import“ Sie bedeuten „laden ein Class
Objekt, so dass Sie Reflexionsmethoden ausführen können“, dann verwenden:
Class<?> clazz = Class.forName("com.mypackage.MyClass");
(Die wir Grund Leser durch Ihr Wort verwechselt wurden „Import“ ist, dass typischerweise Dies bezieht sich auf das Schlüsselwort import
, das im oberen Bereich der Java-Klassendateien verwendet wird, um dem Compiler mitzuteilen, wie Klassennamen erweitert werden sollen (z. B. import java.util.*;
).
Objekt o = clazz.newInstance(); wird benötigt, wenn wir das Objekt dieser Klasse verwenden wollen. –
Die Java Dokumentation eine große Quelle des Wissens für Sachen wie diese ist, empfehle ich Ihnen auf das Klassenobjekt Dokumentation lesen, die hier gefunden werden kann: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html
Wie in Jason Cohen Antwort erwähnt Sie laden Klasse-Objekt die folgende Codezeile verwenden und dann eine Instanz dieser Klasse erstellen Sie wie so die newInstance Methode der Klasse Objekt ausführen würde:
Class<?> clazz = Class.forName("com.mypackage.MyClass");
Object o = clazz.newInstance();
verwechseln Sie nicht „Import“ mit Klasse Laden.
Die Importanweisung lädt nichts. Sie müssen nur den vollständig aufgelösten Klassennamen eingeben. Wenn Sie foo.bar.Baz importieren, können Sie in Ihrem Code auf die Klasse Baz verweisen, anstatt sie buchstabieren zu müssen. Das ist alles wichtig.
aaaah ... ok, ich sehe jetzt. Vielen Dank, das ist ein wichtiger Teil, den ich beim Lesen von Java 101 vermisst habe. – xelurg
- 1. Programmgesteuertes Importieren von Cert in IIS?
- 2. Programmgesteuertes Importieren eines vorhandenen Projekts in Eclipse
- 3. Programmgesteuertes Importieren eines C/C++ - Projekts
- 4. Programmgesteuertes Importieren von Assets in Hierarchie Unity
- 5. Programmgesteuertes Anpassen der Bildlaufleiste
- 6. Programmgesteuertes Fokussieren der Adressleiste?
- 7. Programmgesteuertes Ändern der Combobox
- 8. Programmgesteuertes Erstellen der Funktionsspezifikation
- 9. Programmgesteuertes Importieren von Plug-Ins und Fragmenten aus JAR-Dateien
- 10. Java Eclipse: Programmgesteuertes Importieren von Plugins und Fragmenten
- 11. Programmgesteuertes Abrufen der GPU-Auslastung
- 12. Programmgesteuertes Laden der eingebetteten Ressourcendatei
- 13. Programmgesteuertes Ändern der Systemnetzwerkeinstellungen (Proxy)
- 14. Programmgesteuertes Zurücksetzen in der Tabellenansicht
- 15. Programmgesteuertes Scrollen
- 16. iPhone SDK 4 - Programmgesteuertes Erkennen der Datenträgerhardwareknöpfe?
- 17. Programmgesteuertes Erstellen von Bildern unter der Medienbibliothek
- 18. Programmgesteuertes Ändern der 16 Standardkonsolenfarben von PowerShell
- 19. Programmgesteuertes Ändern der Auswahl auf DatagridView (.NET)
- 20. Programmgesteuertes Erzeugen der Entscheidungstabelle in C#?
- 21. Programmgesteuertes Öffnen der Einstellungen App (iPhone)
- 22. Programmgesteuertes Ein-/Ausblenden der virtuellen Tastatur
- 23. Programmgesteuertes Bestimmen der Schriftgröße für einzeilige Anzeige
- 24. Programmgesteuertes Abrufen der Assemblyversion eines ausgeführten Diensts
- 25. Programmgesteuertes Festlegen der Zieladresse für java.util.logging
- 26. Programmgesteuertes Einchecken von Veröffentlichungsseiten aus der Seitenbibliothek
- 27. Programmgesteuertes Deaktivieren der Netzwerkautomatik unter Windows Vista
- 28. Magento: Programmgesteuertes Ändern der Konfiguration eines Widgets
- 29. Programmgesteuertes Aktivieren der Schaltfläche "Speichern" aktiviert/deaktiviert
- 30. Programmgesteuertes Erstellen eines Projekts
Meinst du importieren (in die .java-Datei) oder meinst du instanziieren? –