2012-09-18 6 views
1

Possible en double:
Creating an instance using the class name and calling constructorJava: créer un objet basé sur le contenu d'une chaîne

Comment puis-je créer un objet basé sur le contenu d'une chaîne passée à une méthode? Par exemple

createObj(String nameclass){ 
**class passed** obj; 
} 
+0

Près d'un double, mais les réponses dans l'autre article sont inutilement compliqué pour le non-args cas du constructeur, où 'clazz.newInstance()' est tout ce qui est nécessaire. – DNA

Répondre

6

Vous pouvez utiliser Class.newInstance() pour construire une instance de la classe. Vous, cependant, besoin d'obtenir l'objet Class<> utilisant Class.forName(...)

<T> T createObj(String nameclass) throws ClassNotFoundException, 
     InstantiationException, IllegalAccessException { 

    Class<T> clazz = (Class<T>) Class.forName(nameclass); 

    // assumes the target class has a no-args Constructor 
    return clazz.newInstance(); 
} 
Questions connexes