我有以下两种方法,如何将DocsObj中定义的方法调用到DistanceObj?
第一个目标是:
object DocsObj{
def Docs(s: List[String], b:Int): List[String] = { ... }
}
第二个是:
object Distance{
def tanimoto(l1: List[String], l2: List[String]): Float={
var list1= List[String]()
list1=DocsObj.Docs(l1,6).asInstanceOf[List].toSet
}
}
错误如下:
<console>:29: error: polymorphic expression cannot be instantiated to expected type;
found : [B >: String]scala.collection.immutable.Set[B]
required: List[String]
list1=DocsObj.Docs(list1,6).asInstanceOf[List[String]].toSet
答案 0 :(得分:0)
问题是,您尝试分配给list1
的值为Set
,但list1
var的类型为List
。
编译器错误尽可能地解释了这一点,但也许错误消息有点模糊,因为赋值的右侧可能有很多类型(&#34;多态表达式&#34;),所以&# 34;实测值&#34;错误消息中的行是一系列类型,而不是单个类型。
尝试将list1
更改为Set[String]
类型,或将toSet
来电更改为toList
来电。