Type mismatch, expected: util.List[BaseFea], actual: List[BaseFea]

方法一. import scala.collection.JavaConversions._
方法二:import scala.collection.JavaConverters._ 并在list后添加.asJava

出现这种情况一般是scala代码中使用了java代码。比如下面的thrift结构体生成了一个java类,然后在scala中被调用:

struct SampleInstance{
   1:optional string UID;
   2:optional string label;
   3:optional list<BaseFea> features;
}
  • 如果是从类中取出list然后进行操作,比如两个list相加,就要把list进行.asScala操作,因为你取出的是Java list,要在scala 代码中进行加操作
  • 如果是将scala 中的list 通过类的set方法,将该list 设成类的一个属性的值,就要在list后加上.asJava,因为是将scala 中的list放到java中
    从下面的例子中可以get到
   val fealist = instance.get.getFeatures.asScala ++ sampleInstance.getFeatures.asScala
   sampleInstance.setFeatures(fealist.asJava)

你可能感兴趣的:(Scala)