[英]Scala: Can a generic trait take its generic type instance from its implementing class?
假設我具有以下特征:
trait Foo[T] {
def returnMyself: T
}
是否有任何方法可以告訴scala任何擴展Foo
類都將其本身作為通用參數呢?
基本上,我想要實現的是能夠寫
class Bar extends Foo {
override def returnMyself: Bar = this
}
無需顯式編寫
class Bar extends Foo[Bar]
我希望我已經說清楚了
您應該可以使用自我類型來做到這一點:
trait Foo { self =>
def returnMyself: self.type
}
class Bar extends Foo {
override def returnMyself = this
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.