Смешение частных и общедоступных / защищенных методов с одинаковыми именами приводит к отключению мультиметодов и запрещает избегать неожиданного поведения
Я только что обновил одно из моих приложений Grails до 2.2.0, которое использует Groovy 2.0, и теперь я получаю эту ошибку компиляции:
Смешение частных и общедоступных / защищенных методов с одним и тем же именем приводит к отключению мультиметода и запрещает избегать неожиданного поведения. Переименование частных методов решит проблему.
На основании следующего кода:
def getRootDomain(key) { }
private getRootDomain() { }
Это легко исправить, но я бы очень хотел понять, почему лучше. Может кто-то объяснить это мне?
1 ответ
Решение
Это из-за того, что groovy выбирает метод для вызова, и его потенциальной несовместимости с Java.
Вы видели эту ветку в списке рассылки?