簡體   English   中英

Scala:泛型特征可以從其實現類中獲取其泛型實例嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM