8

我刚刚将我的一个 Grails 应用程序升级到使用 Groovy 2.0 的 2.2.0,现在我得到了这个编译错误:

混合同名的私有和公共/受保护的方法会导致多方法被禁用,并且被禁止以避免令人惊讶的行为。重命名私有方法将解决问题。

基于以下代码:

def getRootDomain(key) { }

private getRootDomain() { }

这是一个简单的解决方法,但我真的很想更好地理解为什么。谁可以给我解释一下这个?

4

1 回答 1

8

这是因为 groovy 选择调用哪个方法的方式,以及它与 java 的潜在不兼容。

你在邮件列表上看到过这个帖子吗?

http://groovy.329449.n5.nabble.com/mixing-public-private-overloaded-methods-causes-compilation-error-td367147.html

于 2013-01-15T14:07:31.870 回答