我举一个例子来设置一些上下文,所以我有两个接口,每个接口继承相同的父接口并定义它们自己的父接口的抽象方法的实现.
interface A
{
Set a();
}
interface B extends A
{
@Override
default Set a()
{
return null;
}
}
interface C extends A
{
@Override
default Set a()
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
在一个名为的接口中D,该实现创建了一个匿名内部类,然后需要调用超类型(B和C)a()实现.
interface D extends B, C
{
@Override
default Set a()
{
return new HashSet()
{
{
final int totalSize = D.this.B.super.a().size() + D.this.C.super.a().size();
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
问题是表达式D.this.B.super.a()并D.this.C.super.a()没有成功编译,所以是什么?
谢谢你的努力.