簡體   English   中英

在抽象類的具體實現中嘗試覆蓋泛型函數時出現類型錯誤

[英]Type error when when trying to override a generic function in a concrete implementation of an abstract class

可以使用以下代碼在控制台中重現該錯誤。

case class SomeClass(name: String)

abstract class Factory() {
  protected def create[U](name: String) : U
}

class SomeFactory extends Factory() {
  override def create[SomeClass](name: String) = SomeClass(name)
} 

<控制台>:11:錯誤:類型不匹配;
找到:SomeClass(在對象$ iw中)必需:SomeClass(在方法create中)覆蓋def create [SomeClass](名稱:字符串)= SomeClass(名稱)

似乎這是您要實現的目標:

case class SomeClass(name: String)

abstract class Factory[U]() {
  protected def create(name: String) : U
}

class SomeFactory extends Factory[SomeClass] {
  def create(name: String) = SomeClass(name)
}

(我假設您是要SomeFactory擴展Factory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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