从类名创建grails域类

时间:2012-03-15 08:19:26

标签: grails reflection groovy

我正在尝试使用Class.forName('com.mypack.MyDomain').newInstance() 从其限定名称创建grails域的实例。 但它扔了ClassNotFoundException. 我假设这是因为.forName('')期望该类是一个java类而不是一个groovy类? 如何在grails中使这个工作,或者是否有另一种方法从字符串格式的类名创建域对象。

由于 Priyank

2 个答案:

答案 0 :(得分:8)

另一种尝试的方法是:

GrailsDomainClass dc = grailsApplication.getDomainClass( 'com.mypack.MyDomain' )
def newDomainObject = dc.clazz.newInstance()

答案 1 :(得分:1)

尝试

GrailsClass clazz =  grailsApplication.getArtefactByLogicalPropertyName(DomainClassArtefactHandler.TYPE, className)
clazz.clazz.newInstance()