Groovy / Grails - How to get class instance from String?

class, grails, groovy

Solution

The Grails way would be to use GrailsApplication#getArtefact. e.g.,

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

The advantage of doing it this way as opposed to `Class.forName` is that if there is no domain class with that name, `getArtefact` just returns null instead of throwing an exception.

Problem

I'm trying to derive the class instance of a groovy class from the name of string. For example, I'd like to do some code along these lines: ``` def domainName domainName = "Patient" // but following line doesn't work, domainName is a String def domainInstance = domainName.get(1); ```

Original source