我正在尝试编译以下代码:
class MyClass {
def foo(): this.type = Helper.bar(this)
}
class ChildClass extends MyClass
object Helper {
def bar[A <: MyClass](cls: A): A = cls
}
产生的编译器错误是:
type arguments [MyClass.this.type] do not conform to method bar's type parameter bounds [A <: MyClass]
有什么办法可以用上面提供的方法签名来创建这个编译属性吗?似乎MyClass.this.type应该是一个validClass,并且我不想在调用Helper时抛出两次(一次在路上,一次在路上)。
答案 0 :(得分:4)
从不推断单身人士类型。你必须写
Helper.bar[this.type](this)