获取Set <type> members </type>的类型/类

时间:2014-07-30 10:59:51

标签: grails groovy

grails项目中的我的班级User.groovy包含以下Set

Set<GlobalRole> globalRoles
static hasMany = [globalRoles: GlobalRole]

GlobalRole是枚举

enum GlobalRole  {
    GLOBALROLE_MGR('Manager'),
    ...
    GlobalRole(String id) {
        this.id = id
    }
}

在其中一个视图(编辑)中,我在用户

上显示以下选择
from="${com.path.classification.GlobalRole?.values()}"

工作正常。 但是:这需要是动态的,需要使用各种枚举。所有这些都在

com.path.classification

例如

com.path.classification.LocalRole
com.path.classification.InvestmentType

我唯一可用的是托管类的成员(此处为用户),例如:

${domainInstance}?.${property.name}

产生Set user.globalRoles

我的问题:有没有办法通过访问包含其中一些枚举的Set来扣除枚举值?

e.g。这样的事情(不工作!)

user.globalRoles.elements.class 

能够动态生成源吗?

1 个答案:

答案 0 :(得分:0)

找到解决方案:

${userInstance?.domainClass.getPropertyByName('mySetName').getReferencedPropertyType().values()}

获取所有可能枚举值的列表。