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

时间:2017-03-14 20:35:02

标签: grails gorm

我需要一个我的域名列表,我通过使用它来获取它们:

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

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

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

基本上进行通用保存。

1 个答案:

答案 0 :(得分:0)

我想出了一种调用构造函数的方法。我不知道这是否是最佳方式。示例代码如下:

//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