如何确定某个类是否为Grails域对象?

Pet*_*ley 13 dns grails groovy

对于任意对象,确定对象类型是否为Grails域类的最简单方法是什么?

Bur*_*ith 18

您可以使用GrailsApplication.向控制器或服务添加依赖注入:

def grailsApplication
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

def foo = ...
if (grailsApplication.isDomainClass(foo.getClass()) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一个动态方法,所以它不在Javadoc中.所有工件都以这种方式工作,例如isServiceClass也可以工作.如果一个插件添加了一个工件,它也可以工作,例如Quartz插件 - 如果安装了Quartz,isTaskClass可以工作.这些方法在这里描述:http://grails.org/doc/latest/guide/12.%20Plug-ins.html#12.5%20Evaluating%20Conventions (2认同)