问题
I have this Scala method with below error. Cannot convert into a Scala list.
def findAllQuestion():List[Question]={
questionDao.getAllQuestions()
}
type mismatch; found : java.util.List[com.aitrich.learnware.model.domain.entity.Question]
required:
scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]
回答1:
import scala.collection.JavaConversions._
will do implicit conversion for you; e.g.:
var list = new java.util.ArrayList[Int](1,2,3)
list.foreach{println}
回答2:
You can simply convert the List using Scala's JavaConverters
:
import scala.collection.JavaConverters._
def findAllQuestion():List[Question] = {
questionDao.getAllQuestions().asScala
}
回答3:
def findAllStudentTest(): List[StudentTest] = {
studentTestDao.getAllStudentTests().asScala.toList
}
回答4:
Import JavaConverters
, the response of @fynn was missing toList
import scala.collection.JavaConverters._
def findAllQuestion():List[Question] = {
// java.util.List -> Buffer -> List
questionDao.getAllQuestions().asScala.toList
}
回答5:
Starting Scala 2.13
, the package scala.collection.JavaConverters
is marked as deprecated in favor of 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)
来源:https://stackoverflow.com/questions/16162090/how-to-convert-a-java-util-list-to-a-scala-list