Grails invokeMethod不起作用

时间:2015-10-20 14:56:28

标签: grails

我有2种方法可以获得相同的参数:

 void removeJob(def user,def company,String job){}
 void addJob(def user,def company,String job){}

我想使用invokeMethod(),但我不确定如何。 我试试:

def methodName = selectedChange[2]=='true'?'add':'remove'
roleService.invokeMethod(methodName+'Job',[userSelected,      selectedCompany,selectedChange[1]])

但我收到了错误

1 个答案:

答案 0 :(得分:1)

您可以使用GString为方法名称动态调用该方法:

String methodName = selectedChange[2] == 'true' ? 'add' : 'remove'
roleService."${methodName + 'Job'}"(userSelected, selectedCompany, selectedChange[1])

这也适用于属性,例如

String propertyName = 'fooCount'
int count = person."$propertyName"