web-dev-qa-db-ja.com

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]

96
boycod3
import scala.collection.JavaConversions._

暗黙的な変換を行います;例えば。:

var list = new Java.util.ArrayList[Int](1,2,3)
list.foreach{println}
66
Neil

ScalaのJavaConvertersを使用して、単純にリストを変換できます。

import scala.collection.JavaConverters._

def findAllQuestion():List[Question] = {
  questionDao.getAllQuestions().asScala
}
107
Fynn
def findAllStudentTest(): List[StudentTest] = { 
  studentTestDao.getAllStudentTests().asScala.toList
} 
26
boycod3

インポートJavaConverters、@ fynnの応答が欠落していましたtoList

import scala.collection.JavaConverters._

def findAllQuestion():List[Question] = {
  //           Java.util.List -> Buffer -> List
  questionDao.getAllQuestions().asScala.toList
}
5
Raymond Chenon

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)
1
Xavier Guihot