我正在关注迈克凯利的精彩教程视频,但我被以下问题难住了。当我添加新的域类时,就会发生这种情况。我尝试撤销更改并添加具有不同名称的 DomainClass、重新启动 IDE 等。只有一个域类我没有错误,如果我添加一个,则会出现错误。
我正在使用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:GrailsProjectTrackergrails-appdomainprojecttrackerEndUser.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
错误。当我调查 http://jira.grails.org/browse/GRAILS-10735 时,我能够重现问题。
在将 null 传递给其参数时,可以重写不明确的方法
MyClass.metaClass.myAmbiguousMethod = {def param ->
if(param != null){
myAmbiguousMethod(param)
} else{
null
}
}
我可以通过提供一个render invalidVariable
语句在 grails 3.2.4 中重现这一点。从我能说的来看,对render
的糟糕论点可能会导致这种情况