使用Scala中具有递归类型的Java接口

时间:2016-07-27 11:44:20

标签: java scala

我正在使用一个带有Builder接口的库,如下所示:

public interface LibInterface<L extends LibInterface> {
    L method();
}

尝试从scala中使用它时:

val b = instanceOfLibInterface.method()

b的类型最终为Any,而不是我最初预期的LibInterface[_ :> LibInterface]

这有点令人讨厌,因为处理这些构建器现在需要大量asInstanceOf次调用来恢复类型。

为什么会这样,并且(鉴于我们无法更改库代码)我们可以做些什么来解决asInstanceOf s?

0 个答案:

没有答案