8

我正在关注 Mike Kelly 精彩的教程视频,但我被以下问题难住了。当我添加一个新的域类时会发生这种情况。我尝试过撤销更改并添加一个不同名称的 DomainClass,重新启动 IDE 等。只有一个 Domain Class 我没有错误,如果我添加一个,则会出现错误。

我正在使用 ggts 3.4.0、Grail 2.3.1、JDK 1.7.0_45。

 | Error 2013-11-04 21:56:37,442 [Thread-8] ERROR plugins.AbstractGrailsPluginManager  - Plugin [domainClass:2.3.1] could not reload changes to file [C:\Grails\ProjectTracker\grails-app\domain\projecttracker\EndUser.groovy]: Ambiguous method overloading for method grails.spring.BeanBuilder#registerBeans.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
    [interface org.codehaus.groovy.grails.commons.spring.RuntimeSpringConfiguration]
    [interface org.springframework.beans.factory.support.BeanDefinitionRegistry]
Message: Ambiguous method overloading for method grails.spring.BeanBuilder#registerBeans.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
    [interface org.codehaus.groovy.grails.commons.spring.RuntimeSpringConfiguration]
    [interface org.springframework.beans.factory.support.BeanDefinitionRegistry]
    Line | Method
->> 2980 | chooseMostSpecificParams     in groovy.lang.MetaClassImpl
4

3 回答 3

2

这是一个错误。当我调查http://jira.grails.org/browse/GRAILS-10735时,我能够重现该问题。

于 2013-11-14T05:35:50.710 回答
0

将 null 传递给其参数时,您可以覆盖模棱两可的方法

MyClass.metaClass.myAmbiguousMethod = {def param ->
    if(param != null){
        myAmbiguousMethod(param)
    } else{
        null
    }
}
于 2014-07-28T11:22:11.163 回答
-1

我可以通过提供一个render invalidVariable声明在 grails 3.2.4 中重现这一点。render据我所知,不好的论点可能会导致这种情况

于 2017-01-09T21:44:47.353 回答