如何在 Grails 3 中使用 getArtefact 调用构造函数

How do you call a constructor from using getArtefact in Grails 3

我需要一个我的域列表,我使用以下方法获取它们:

def domains = grailsApplication.getArtefacts("Domain")*.clazz

在我的每个域中都有一个构造函数,我想做这样的事情:

def item = new domains[0](object)
item.save()

本质上是进行一般保存。

我找到了调用构造函数的方法。我不知道这是否是最好的方法。示例代码如下:

//provides all Domain classes in your project in an ArrayList
//You can also use getArtefact("Domain", "classname")*.clazz to return a subset

def domains = grailsApplication.getArtefacts("Domain")*.clazz

def domain = domains[0].newInstance(object) //Whatever your constructor wants variable: "item" works as well
def domain.save()

感谢 http://mrhaki.blogspot.ca/2010/06/groovy-goodness-create-class-instance.html

让这个工作正常