Groovy черта просит меня реализовать все методы его суперкласса, пока он реализован на другом интерфейсе - PullRequest
2 голосов
/ 19 февраля 2020

У меня есть интерфейс A (в java)

public interface A {
    File getFile();
    void delete();
    void delete0();
}

И интерфейс B расширяется A (в java)

public interface B extends A {
    default void delete() {
        this.getFile().delete();
    }
}

И интерфейс C, который также расширяет A (в java)

public interface C extends A {
    default void delete0() {
        this.getFile().delete();
    }
}

И у меня есть черта D, которая реализует A (в groovy)

public trait D implements A {
    private File file;
    public File getFile() {
        return this.file;
    }
}

наконец, у меня есть класс E, который реализует B, C, D (в groovy)

public class E implements B, C, D {
}

При компиляции компилятор жалуется на класс E что он не реализует метод delete0()

1 Ответ

0 голосов
/ 22 февраля 2020

Ваш код работает с Groovy 3.0.1, я полагаю, вы используете более раннюю версию с ошибкой.

...