2009-01-22 8 views
5

Y a-t-il un moyen en Java d'importer par programme une classe avec son nom complet en tant que chaîne (c'est-à-dire comme "com.mydummypackage.MyClass")?Comment importer par programme la classe Java

+0

Voulez-vous dire import (dans le fichier .java) ou voulez-vous dire instancier? –

Répondre

15

Si par « importation » vous voulez dire « charger un objet Class de sorte que vous pouvez exécuter des méthodes de réflexion, » puis utilisez:

Class<?> clazz = Class.forName("com.mypackage.MyClass"); 

(La raison pour laquelle nous les lecteurs ont été confondus par votre mot « importation » est que généralement cela fait référence au mot-clé import utilisé près du début des fichiers de classe Java pour indiquer au compilateur comment développer les noms de classes, par exemple import java.util.*;).

+1

Objet o = clazz.newInstance(); est nécessaire si nous voulons utiliser l'objet de cette classe. –

6

La documentation Java est une grande source de connaissances pour des trucs comme ça, je vous suggère de lire sur la documentation de la classe Object qui se trouve ici: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html

Comme mentionné dans la réponse de Jason Cohen, vous pouvez charger une objet de classe en utilisant la ligne de code suivante puis de créer une instance de cette classe que vous exécuterez la méthode newInstance de l'objet de classe comme ceci:

Class<?> clazz = Class.forName("com.mypackage.MyClass"); 
Object o = clazz.newInstance(); 
4

ne confondez pas « importation » avec le chargement des classes.

L'instruction d'importation ne charge rien. Tout ce qu'il fait est de vous éviter d'avoir à taper le nom de classe entièrement résolu. Si vous importez foo.bar.Baz, vous pouvez vous référer à la classe Baz dans votre code au lieu de l'épeler. C'est tout moyen d'importation.

+0

aaaah ... ok, je vois maintenant. Merci beaucoup, c'est un élément important que j'ai raté en lisant Java 101 je suppose ... – xelurg

Questions connexes