【发布时间】:2012-09-27 02:56:01
【问题描述】:
我有一个已编译的 grails 项目,并且从一个单独的 groovy 项目中,我反射性地加载了一个域类,如下所示
Class clazz = Class.forName('mypack.myclass', true, Thread.currentThread().contextClassLoader)
def newDomainObject = clazz.newInstance()
当从 grails 外部运行时(在我单独的 groovy 项目中),该对象未被识别为 GroovyObject。
println newDomainObject instanceof GroovyObject // false
由于我是从 grails 外部运行的,我认为 groovy 会像对待任何其他类一样对待域类(并且通过查看类文件,它确实实现了 GroovyObject)。
我最好的猜测是它与 grails 如何编译域对象有关,但我不确定这里发生了什么。
注意这与Why doesn't Class.forName work on grails domain classes有关,但不一样。
【问题讨论】:
标签: grails reflection groovy domain-object