Scala Trait不符合类型参数界限

Scala Trait不符合类型参数界限,scala,types,Scala,Types,我对类型有一些问题。 在这种情况下,我有两个基本方法的特性,其中一个依赖于另一个。 之后,我为它们提供了两个实现。 你知道这里怎么了吗 编译器说: type arguments [ImplDefinition,ImplDto,ImplDtoIdentifier] do not conform to trait ChildOperations's type parameter bounds [C <: Types.BaseT[A,I],A <: Types.IDObj[I],I <

我对类型有一些问题。 在这种情况下,我有两个基本方法的特性,其中一个依赖于另一个。 之后,我为它们提供了两个实现。 你知道这里怎么了吗

编译器说:

type arguments [ImplDefinition,ImplDto,ImplDtoIdentifier] do not conform to trait ChildOperations's type parameter bounds [C <: Types.BaseT[A,I],A <: Types.IDObj[I],I <: IIdentifier]
[error] class ImplOperations extends Parent2(new ImplDefinition) with ChildOperations[ImplDefinition, ImplDto, ImplDtoIdentifier] {

type参数[ImplDefinition,ImplDto,ImplDtoIdentifier]不符合trait-ChildOperations的类型参数界限[C问题似乎是
ImplDefinition
中的
id
def的签名。
Types.BaseT
要求提供
def-id:Foo[I]
ImplDefinition
仅提供
def-id(a:ImplDto):Foo[ImplDtoIdentifier]
如果向
ImplDefinition
类中添加
def id:Foo[ImplDtoIdentifier]=???
,则将编译以下内容:

class ImplDefinition extends Parent1[ImplDto]("Value") with ChildDefinition[ImplDto, ImplDtoIdentifier] {
  def id:Foo[ImplDtoIdentifier] = ???
  override def id(a: ImplDto): Foo[ImplDtoIdentifier] = ???
}

就我个人而言,我想看一看并给你一个提示,但我没有足够的时间来弄清楚这里发生的一切。你有11个类/特征,这不包括额外的类型。如果你把你的例子缩小到a,你会有更大的机会得到好的回应。我已经做了这个小动作,并删除了所有剩余的部分s、 但是你是对的,它仍然很大。不确定它是否有用,但是如果你删除了它编译的类implicOperations。问题是验证ChildOperations类型。
class ImplDefinition extends Parent1[ImplDto]("Value") with ChildDefinition[ImplDto, ImplDtoIdentifier] {
  def id:Foo[ImplDtoIdentifier] = ???
  override def id(a: ImplDto): Foo[ImplDtoIdentifier] = ???
}