Groovy/Grails - 如何从String获取类实例?

Jac*_*ble 11 grails groovy class

我正在尝试从字符串的名称派生groovy类的类实例.

例如,我想沿着这些方向做一些代码:

def domainName

domainName = "Patient"

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

noa*_*oah 23

Grails方式是使用GrailsApplication#getArtefact.例如,

def domainInstance = grailsApplication.getArtefact("Domain",domainName)?.
        getClazz()?.get(1)
Run Code Online (Sandbox Code Playgroud)

以这种方式执行此操作的优点Class.forName是,如果没有具有该名称的域类,getArtefact则只返回null而不是抛出异常.