Groovy trait 要求我实现它的所有超级 class 方法,而它已经在另一个接口上实现了

Groovy trait asks me to implement all of it's super class's methods while it have been implemented on another interface

我有一个接口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;
    }
}

最后,我有一个 class E 实现了 BCD(在 groovy 中)

public class E implements B, C, D {
}

编译时,编译器报错class E没有实现delete0()

方法

您的代码适用于 Groovy 3.0.1,我假设您使用的是带有错误的早期版本。