8

私は Mike Kelly の素晴らしいチュートリアル ビデオに従っていますが、次の問題に悩まされています。新しいドメイン クラスを追加すると発生します。変更を元に戻したり、別の名前の DomainClass を追加したり、IDE を再起動したりしました。ドメイン クラスが 1 つしかない場合、エラーは発生しませんが、追加するとエラーが表示されます。

私は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

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 に答える