J'ai un String
qui a un nom d'une classe de dire "Ex"
(n .class
extension). Je veux attribuer à un Class
variable, comme ceci:
Class cls = (string).class
Comment puis-je le faire?
J'ai un String
qui a un nom d'une classe de dire "Ex"
(n .class
extension). Je veux attribuer à un Class
variable, comme ceci:
Class cls = (string).class
Comment puis-je le faire?
String clsName = "Ex"; // use fully qualified name
Class cls = Class.forName(clsName);
Object clsInstance = (Object) cls.newInstance();
De vérifier la Java Tutoriel sentier sur la Réflexion à http://java.sun.com/docs/books/tutorial/reflect/TOC.html pour plus de détails.
Vous pouvez obtenir la Classe de référence de la catégorie au cours de l'exécution serait par le biais de la Réflexion Java Concept.
Vérifiez le Code ci-Dessous. Explaianation est donnée ci-dessous Voici un exemple qui utilise retournés en Classe pour créer une instance de la Classe:
package com.xyzws;class AClass {
public AClass() {
System.out.println("AClass's Constructor");
}
static {
System.out.println("static block in AClass");
}
}
public class Program {
public static void main(String[] args) {
try {
System.out.println("The first time calls forName:");
**Class c = Class.forName("com.xyzws.AClass");
AClass a = (AClass)c.newInstance();
System.out.println("The second time calls forName:");
Class c1 = Class.forName("com.xyzws.AClass");**
} catch (ClassNotFoundException e) {
... } catch (InstantiationException e) {
... } catch (IllegalAccessException e) {
... }
}
}
The output is
The first time calls forName:
static block in AClass
AClass's Constructor
The second time calls forName:
//Calss has been loaded so there is not "static block in AClass" printing outThe second
Le Exaplaination est ci-dessous
Classe.ForName est appelé pour obtenir un Objet de Classe
À l'Aide de la Classe de l'Objet, nous sommes de la création de la nouvelle instance de la Classe.
Des doutes à propos de ce laissez-moi savoir
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.