簡體   English   中英

在Scala中使用泛型時發生錯誤類型不匹配

[英]Error type mismatch while using generics in scala

在Scala中使用泛型時出錯:

import scala.collection.mutable

class test {
  val car = mutable.Map.emprty[String, (Int,Int)]
  read[String, (Int,Int)] ("file.txt",car)
  def read[T,V] (fileName:String, mapName: mutable.Map[T,V]) {
    mapName("abc") = (1,2)
  }

錯誤:

   error: type mismatch
   found: java.lang.String("abc")
   required: T

您的代碼不是真正的通用代碼,因為在read函數體內,您假設TVString(Int, Int) 通用參數是方法簽名上的界限,它們僅在參數類型或返回類型以某種方式相互關聯時才有用。

我認為您的代碼在read函數簽名中使用具體類型將是完美的:

def read(fileName: String, mapName: mutable.Map[String, (Int, Int)]) {
  mapName("abc") = (1,2)
}

暫無
暫無

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

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