在 Scala 中使用抽象成员 class 实现抽象的泛型 Java class

Implementing an abstract, generic Java class with abstract member class in Scala

我试图在 Scala 中实现一个抽象的、通用的 Java class,但我收到了

形式的错误
object creation impossible, since method B in class A of type (x: A<Concrete1, Concrete2>#C)Unit is not defined

我正在实现的库 classes 如下所示:

public abstract class A<T, U> {
    public void B(C);

    public abstract class C {
        // elided
    }
}

并且我想实现一个 A 以返回给图书馆(它将调用 B,提供 C)。在Java,我可以做:

new A<Concrete1, Concrete2>() {
    @Override
    public void B(C c) {
        // implementation
    }
}

在 Scala 中,我正在尝试

new A[Concrete1, Concrete2] {
    def B(c: C): Unit = {
        // implementation
    }
}

我在顶部收到了错误消息。使用 override,编译器会抱怨 method B overrides nothing。似乎 Scala 类型系统无法识别我作为 A<Concrete1, Concrete2>#C 传入的 C,但我不确定它 认为 是什么类型是。

我已经尝试指定 self: A[Concrete1, Concrete2] =>,以及 C 上的自我类型:def B(c: self.C,但都没有解决问题。我也试过 def B(c: A[Concrete1, Concrete2].C),但这会引发语法错误。

有什么建议吗?

已解决:def B(c: A[Concrete1, Concrete2]#C): Unit。需要通用类型信息才能使其成为有效的覆盖,但我不知道 # 运算符。