【发布时间】:2025-12-08 08:45:01
【问题描述】:
考虑以下 Scala 代码:
abstract class A
abstract class B[T <: A]
class ConcreteA extends A
class ConcreteB extends B[ConcreteA]
class Example[U <: B[T], T <: A]( resolver: U )
object Test {
new Example( new ConcreteB )
}
最后一行new Example( new ConcreteB )编译失败,报错如下:
错误:推断的类型参数 [ConcreteB,Nothing] 不符合类示例的类型参数边界 [U <: b a>
但ConcreteB 拥有解析 U 和 T 所需的所有数据。我在这里遗漏了什么?
【问题讨论】:
-
类似,但该问题的公认答案不适用于这种情况。
标签: scala