我为POGO类实现了以下列表方法
def list (def sort=null, def order=null, def max=null, def offset=null) {
..
}
当我从 Controller 调用它时
render view: 'index', model: [orderList: Order.list(params.sort, params.order, params.max, params.offset), orderCount:orders.size()]
我收到以下错误
No signature of method: static mypackage.Order.list() is applicable for argument types: (null, null, null, null) values: [null, null, null, null]
Possible solutions: list(), wait(), find(), list(java.lang.Object), list(java.lang.Object, java.lang.Object), list(java.lang.Object, java.lang.Object, java.lang.Object). Stacktrace follows:
Message: No signature of method: static latis.ctl.Job.list() is applicable for argument types: (null, null, null, null) values: [null, null, null, null]
Possible solutions: list(), wait(), find(), list(java.lang.Object), list(java.lang.Object, java.lang.Object), list(java.lang.Object, java.lang.Object, java.lang.Object)
Line | Method
->> 6 | showInstances in latis.ctl.JobController
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 198 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter . . in grails.plugin.cache.web.filter.AbstractFilter
| 53 | doFilter in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
| 49 | doFilter . . in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
| 82 | doFilter in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
| 1145 | runWorker . . in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 744 | run . . . . . in java.lang.Thread
java.lang.Object), list(java.lang.Object, java.lang.Object, java.lang.Object)
最佳答案
stacktrace和 Controller 代码显示您正在调用静态方法(在类而不是实例上调用该方法)。您显示定义的方法是一个实例方法。您没有在调用您定义的方法。
如果您打算将其作为静态方法,则可以使用static def
定义该方法。
关于grails - 具有默认参数的Groovy列表方法不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986948/