调用groovy方法的区别
方法 可以这样调用调用groovy方法的区别,groovy,Groovy,方法 可以这样调用UserRole.create(u,r,true) 但是错误地用UserRole.create调用它(u,r,flush:true)会导致 没有方法的签名:UserRole.create()适用于参数 类型:(java.util.LinkedHashMap…) 我知道调用它是一种错误的方式,但我正在试图理解为什么会出现LinkedHashMap错误,以及GORM内置的save方法是如何工作的……因为调用User.save(flush:true)效果很好。您有一个错误,因为flu
UserRole.create(u,r,true)
但是错误地用UserRole.create调用它(u,r,flush:true)
会导致
没有方法的签名:UserRole.create()适用于参数
类型:(java.util.LinkedHashMap…)
我知道调用它是一种错误的方式,但我正在试图理解为什么会出现
LinkedHashMap
错误,以及GORM内置的save方法是如何工作的……因为调用User.save(flush:true)
效果很好。您有一个错误,因为flush:true
被解释为带有一个键值元素的映射。
Groovy不支持方法中的命名参数
因为调用User.save(flush:true)工作正常
我没有使用Grails,但是save()
似乎是GORM框架中的默认内置方法。如果检查方法实现,您很可能会看到它在方法参数中接受Map
。您的意思是“调用像新用户角色(u,r,true)
-或者它是类用户角色{static void create…}
?还要注意,groovy没有命名参数(如python)。flush:true
只是[flush:true]
的缩写,这是传递一个映射。
def UserRole (User u, Role r, boolean flush = false) {
...
}