Смешение частных и общедоступных / защищенных методов с одинаковыми именами приводит к отключению мультиметодов и запрещает избегать неожиданного поведения

Я только что обновил одно из моих приложений Grails до 2.2.0, которое использует Groovy 2.0, и теперь я получаю эту ошибку компиляции:

Смешение частных и общедоступных / защищенных методов с одним и тем же именем приводит к отключению мультиметода и запрещает избегать неожиданного поведения. Переименование частных методов решит проблему.

На основании следующего кода:

def getRootDomain(key) { }

private getRootDomain() { }

Это легко исправить, но я бы очень хотел понять, почему лучше. Может кто-то объяснить это мне?

1 ответ

Решение

Это из-за того, что groovy выбирает метод для вызова, и его потенциальной несовместимости с Java.

Вы видели эту ветку в списке рассылки?

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

Другие вопросы по тегам