11
votes

Groovy / Grails - Comment obtenir une instance de classe à partir de la chaîne?

J'essaie de dériver l'instance de classe d'une classe groovy du nom de la chaîne.

Par exemple, j'aimerais faire du code le long de ces lignes: P>

def domainName

domainName = "Patient"

// but following line doesn't work, domainName is a String
def domainInstance = domainName.get(1);  


0 commentaires

3 Réponses :


-3
votes

Eh bien,

  1. Essayez de mettre en œuvre votre code à l'aide de packages

  2. Essayez ce code: Je ne sais pas si cela fonctionnera ok?

    def domainInstance = classe.forname ("patient"). NewInstance ()


0 commentaires

2
votes

Cela fonctionnera:

   Class.forName("Patient",  false, Thread.currentThread().contextClassLoader).get(1)


1 commentaires

Ce que je cherchais, mais le prochain couvre NULL. Merci quand même!



23
votes

La voie des grails serait d'utiliser Greauplication # GetArtFact . Par exemple,

def domainInstance = grailsApplication.getArtefact("Domain",domainName)?.
        getClazz()?.get(1)


0 commentaires