Явный вызов метода по умолчанию в Groovy - PullRequest
0 голосов
/ 22 февраля 2019

Этот вопрос очень похож на тот, который обсуждается Явный вызов метода по умолчанию в Java , но в коде Groovy (версия 2.4.16)

public interface Interface { // a Java interface
    default void call() {}
}

public class Test implements Interface { // a Groovy class
    @Override
    public void call() {
        Interface.super.call() // compile error: Groovy:The usage of 'Class.this' and 'Class.super' is only allowed in nested/inner classes.
    }
}

С другой стороныметоды по умолчанию очень похожи на Trait в Groovy, и следующий код компилирует OK

public trait Trait { // a Groovy trait
    void call() {}
}

public class Test implements Trait { // a Groovy class
    @Override
    public void call() {
        Trait.super.call() // compiles OK
    }
}

Итак, как явно вызвать метод по умолчанию в подклассе Groovy?

...