我正在尝试将整数映射到Scala中的对象。我是Scala的新手,所以我遇到此错误“无法解析重载的构造函数Item”。请帮助解决此错误。
object Main extends App {
override def main(args: Array[String]): Unit = {
val listMap1: ListMap[Int, Item] = ListMap(1 -> new Item("mobile", 25000, 1) )
}
}
此部分出现此错误:
new Item("mobile", 25000, 1)
这是我的课程项目:
class Item (name: String, price: Int, id: Int){
def this(name: String, price: Int, id: Int) = {
this(name,price,id);
}
}
答案 0 :(得分:0)
在Scala中,描述类时放在括号内的内容是构造函数。然后,您用def this...
重载它,并且由于具有相同的签名,编译器无法确定要使用哪个签名。
请注意,在这种情况下,case class
提供了很多不错的语法糖。最好的方法是做类似的事情
case class Item(name: String, price: Int, id: Int)
val map: Map[Int, Item] = Map[Int, Item](1 -> Item("mobile", 25000, 1))