2013-04-23 24 views
76

Aşağıda bu Scala yöntemini hatayla yaşıyorum. Bir Scala listesine dönüştürülemiyor.Bir java.util.List bir Scala listesine nasıl dönüştürülür

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

tür uyuşmazlığı; bulunan: java.util.List[com.aitrich.learnware.model.domain.entity.Question] gerekli: scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]

+2

Dostlarım bu ilgi diğer soruyu bulabilirsiniz: https://stackoverflow.com/questions/8301947 Liste [StudentTest] = { var list = studentTestDao.getAllStudentTests() var slist:/Bu gözüküyor çalışma .. def findAllStudentTest() – Amndeep7

cevap

46
import scala.collection.JavaConversions._ 

sizin için örtük dönüştürme yapacak; örneğin: Bu sorunun şu an

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

Sadece kullanarak Listesini dönüştürebilirsiniz Scala'nın JavaConverters:

import scala.collection.JavaConverters._ 

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

--fark-arası-javaconverters-ve-javaconversions-in-scala nedir = list.asScala.toList list } – boycod3

+3

"var" yerine "val" yerine "0" değerine yapıştırmayı deneyin ... – fynn

+9

java.util.List .asScala, benim için bir arabellek olarak geri dönüyor. Java: çok – phillro

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

Neden var var? Ayrıca, son iki satır tek bir satır "list.asScala.toList" – redent84

+0

birleştirilebilir gibi görünüyor ilk var liste java kullanım listesini alacak ve ikinci liste java kullanım listesini scala listesine dönüştürecektir. – boycod3

+3

Yani, – redent84

1

İthalat JavaConverters, @fynn tepkisi eksikti toList

import scala.collection.JavaConverters._ 

def findAllQuestion():List[Question] = { 
    //   java.util.List -> Buffer -> List 
    questionDao.getAllQuestions().asScala.toList 
} 
İlgili konular