2013-04-23 7 views
76

このScalaメソッドは以下のエラーがあります。 Scalaリストに変換できません。java.util.Listを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]

+2

人々が関心のこの他の質問を見つけるかもしれない:https://stackoverflow.com/questions/8301947 /何-ある-差-間-javaconverters-と-javaconversions・イン・スカラ座 – Amndeep7

答えて

46
import scala.collection.JavaConversions._ 

あなたのための暗黙的な変換を行います。例えば:この質問を見て

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

あなたは、単に使用してリストを変換することができScalaのJavaConverters

import scala.collection.JavaConverters._ 

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

これは働いているようだ。.. デフfindAllStudentTest():リスト[StudentTest] = { VARリスト= studentTestDao.getAllStudentTests() するvar SLIST = list.asScala.toList slist } – boycod3

+3

'var'sの代わりに' val'sに固執しようとしてください... – fynn

+9

java.util.List .asScalaは私のためにバッファーとして奇妙に戻ってきます。 – phillro

19
def findAllStudentTest(): List[StudentTest] = { 
    studentTestDao.getAllStudentTests().asScala.toList 
} 
+2

なぜ' var'ですか?また、最後の2行を1行の 'list.asScala.toList'にまとめることができるようです。 – redent84

+0

最初のvarリストはjava utilリスト を取得し、2番目のスライスはjava utilリストをscalaリストに変換します。 – boycod3

+3

なぜなら、変数を変更していないのであれば、なぜ 'val'の代わりに' var'を使うのでしょうか? – redent84

1

インポートJavaConverters、@fynnの応答が行方不明になったtoList

import scala.collection.JavaConverters._ 

def findAllQuestion():List[Question] = { 
    //   java.util.List -> Buffer -> List 
    questionDao.getAllQuestions().asScala.toList 
} 
関連する問題