我有以下特點(簡化的例子)參數化類型界限
trait F[A, M[_] <: Option[A]] {
def v: A
def f: A => M[A]
}
我希望能夠創建以下特點
trait G[A] extends F[A, Some]
但是,這提供了以下錯誤
Error:(18, 20) type arguments [A,Some] do not conform to trait F's type parameter bounds [A,M[_] <: Option[A]]
如何限制M[_]
段計量型?
編輯:
A型F[A, M[_] <: Option[_]]
會工作。但其實我有另一個功能在我的特質
trait F[A, M[_] <: Option[_]] {
def v: A
def f: A => M[A]
def f2: A => A = {
(a: A) => f(a).get
}
}
,並在f2
這種情況下,get
不返回類型的值A
即使f
回報M[A]
Error:(17, 20) type mismatch;
found : _$1
required: A
(a: A) => f(a).get
你能改變M [_]到M [A]嗎? –
感謝Rich,將'M [_]'改爲'M [A]'實際上正在工作。 – synapski