Donc, supposons que j'ai une chaîne str = "MyClass", maintenant je veux utiliser cette chaîne pour trouver la classe MyClass afin de pouvoir l'instancier et utilisez-le.Comment puis-je utiliser une chaîne pour trouver la classe qui a le même nom avec la chaîne
3
A
Répondre
5
Exemple simple:
MyClass obj = Class.forName("com.xyz.MyClass").newInstance();
Cela suppose l'existence d'un constructeur par défaut, et jeter diverses exceptions si la classe ne peut pas être trouvé, ou ne peut pas être instanciée.
0
Class.forName peut faire ce que vous voulez, mais vous aurez également besoin du chemin complet du paquet.
0
Classe myClass = Class.forName ("package.MyClass");
Occurrence d'objet = myClass .newInstance();
où paquet est le nom du package contenant MyClass
veulent souligner, cette classe devrait être disponible pour le chargement par les classloaders, OIEau, devrait être présent sur classpath. –
Comme l'a souligné Skaffman, il existe un certain nombre d'exceptions qui peuvent être levées car vous avez affaire aux API de réflexion de Java. Notez que newInstance() ne fonctionnera que dans un constructeur sans argument disponible pour la classe qui appelle (c'est-à-dire public, package). Si le constructeur prend des arguments, vous devrez effectuer d'autres recherches et appels de réflexion. –