我正在使用一个带有Builder接口的库,如下所示:
public interface LibInterface<L extends LibInterface> {
L method();
}
尝试从scala中使用它时:
val b = instanceOfLibInterface.method()
b的类型最终为Any
,而不是我最初预期的LibInterface[_ :> LibInterface]
。
这有点令人讨厌,因为处理这些构建器现在需要大量asInstanceOf
次调用来恢复类型。
为什么会这样,并且(鉴于我们无法更改库代码)我们可以做些什么来解决asInstanceOf
s?