【发布时间】:2017-05-15 12:21:14
【问题描述】:
我有以下两种方法,如何将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
【问题讨论】:
-
你为什么打电话给
.asInstanceOf[List]?Docs已经返回List[String]。 -
在 Scala 中你不需要
return,它是一种 Java 主义。它存在于 Scala 中,但你只在特殊情况下使用它;它不会出现在普通的 Scala 代码中。除非你真的确定你需要它,否则不要管它。 -
您将
list1定义为List[String],但您尝试分配Set。
标签: scala object apache-spark error-handling large-data