111

我有这个带有以下错误的 Scala 方法。无法转换为 Scala 列表。

 def findAllQuestion():List[Question]={
   questionDao.getAllQuestions()
 } 

类型不匹配; 找到:java.util.List[com.aitrich.learnware.model.domain.entity.Question]需要: scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]

4

5 回答 5

132

您可以使用 Scala 简单地转换列表JavaConverters

import scala.collection.JavaConverters._

def findAllQuestion():List[Question] = {
  questionDao.getAllQuestions().asScala.toList
}
于 2013-04-23T08:07:51.147 回答
76
import scala.collection.JavaConversions._

将为您进行隐式转换;例如:

var list = new java.util.ArrayList[Int](1,2,3)
list.foreach{println}
于 2015-10-24T01:16:49.023 回答
32
def findAllStudentTest(): List[StudentTest] = { 
  studentTestDao.getAllStudentTests().asScala.toList
} 
于 2014-10-06T05:02:42.320 回答
17

开始Scala 2.13,该软件包scala.collection.JavaConverters被标记为已弃用,以支持scala.jdk.CollectionConverters

import scala.jdk.CollectionConverters._

// val javaList: java.util.List[Int] = java.util.Arrays.asList(1, 2, 3)
javaList.asScala.toList
// List[Int] = List(1, 2, 3)
于 2019-03-28T23:36:20.113 回答
8

导入JavaConverters,@fynn 的响应丢失了toList

import scala.collection.JavaConverters._

def findAllQuestion():List[Question] = {
  //           java.util.List -> Buffer -> List
  questionDao.getAllQuestions().asScala.toList
}
于 2017-10-13T15:20:41.937 回答