Как преобразовать java.util.List в список Scala
У меня есть этот метод 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 ответа
Решение
import scala.collection.JavaConversions._
сделает неявное преобразование для вас; например:
var list = new java.util.ArrayList[Int](1,2,3)
list.foreach{println}
Вы можете просто конвертировать список, используя Scala's JavaConverters
:
import scala.collection.JavaConverters._
def findAllQuestion():List[Question] = {
questionDao.getAllQuestions().asScala
}
def findAllStudentTest(): List[StudentTest] = {
studentTestDao.getAllStudentTests().asScala.toList
}
Начало Scala 2.13
, посылка scala.collection.JavaConverters
помечен как устаревший в пользу scala.jdk.CollectionConverters
:
import scala.jdk.CollectionConverters.Ops._
// val javaList: java.util.List[Int] = java.util.Arrays.asList(1, 2, 3)
javaList.asScala.toList
// List[Int] = List(1, 2, 3)
Импортировать JavaConverters
ответ @fynn отсутствовал toList
import scala.collection.JavaConverters._
def findAllQuestion():List[Question] = {
// java.util.List -> Buffer -> List
questionDao.getAllQuestions().asScala.toList
}