查找groovy / grails属性的类型

时间:2014-07-30 08:16:13

标签: grails groovy

我正在编辑grails应用程序的脚手架模板。

我的一个域类具有以下属性:

Set<GlobalRole> globalRoles

其中GlobalRole是枚举。链接是一对多的:

static hasMany = [globalRoles: GlobalRole]

默认的脚手架将角色显示为逗号分隔的字符串 - 我的目的是将其显示为列表。为了达到这个目的,我需要找出一个属性(globalRoles)是否为Set类型,以区分脚手架的生成。

if (User.globalRoles.type instanceof Set){ 
    // do something else
}

然而:这句话是伪造的&#39;因此无法工作。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您正试图获取静态User.globalRoles字段,当然这是错误的。你将使用反射/元编程:

if( User.hasMetaProperty( 'globalRoles' ) && Set.inAssignableFrom( User.getMetaProperty( 'globalRoles' ).type ){