1

Getting errors while using generics in 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:

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

1 Answer 1

3

Your code isn't really generic, because inside read function body, you are assuming T and V to be String and (Int, Int). The generic parameters are bounds on your method signature and they are only useful when types of arguments or return types relate in some way to each other.

I think with your code will be perfectly fine to use concrete types in the read function signature:

def read(fileName: String, mapName: mutable.Map[String, (Int, Int)]) {
  mapName("abc") = (1,2)
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.