如果我在java中定义了以下类
public class A
{
protected class B
{
}
protected void method(B b) {...}
}
我想在 scala 和 override 方法中继承它。我本来希望做以下事情:
class C extends A {
override def method(b: B): Unit = {
// ... do something
super.method(b)
}
}
但是,当我这样做时,scala 编译器不喜欢这样给出以下错误:
方法方法不会覆盖任何内容。注意:类 C 的超类包含以下非最终成员命名方法:protected[package ...] def method(x$1: A#B): Unit
我可以使它工作的唯一方法是执行以下操作:
class C extends A {
override def method(b: A#B): Unit = {
// ... do something
super.method(b.asInstanceOf[this.B])
}
}
我发现必须这样做非常难看,并且想知道是否有更简洁的方法?
谢谢
德斯