Mam tę metodę Scala z poniższym błędem. Nie można przekonwertować na listę Scala.
def findAllQuestion():List[Question]={
questionDao.getAllQuestions()
}
niezgodność typów; znaleziono: java.util.List[com.aitrich.learnware.model.domain.entity.Question]
wymagane:
scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]
list
scala
scala-java-interop
boycod3
źródło
źródło
Odpowiedzi:
dokona niejawnej konwersji za Ciebie; na przykład:
źródło
scala.collection.JavaConversions._
jest przestarzały na korzyść,scala.collection.JavaConverters._
więc ta odpowiedź jest lepszascala.jdk.CollectionConverters._
od 2.13. Szczegóły można znaleźć tutaj .Możesz po prostu przekonwertować listę za pomocą Scali
JavaConverters
:źródło
Buffer
to JavaList
, nic nie jest w porządku! OP chciał konwersji z listy Java do niezmiennej listy Scala. Wyrażenia, które oczekują ScalaList
, nie sprawdzają typu z rozszerzeniemBuffer
..toList
więc kod brzmiquestionDao.getAllQuestions().asScala.toList
źródło
var
s? Wydaje się również, że ostatnie dwie linie można połączyć w jedną linięlist.asScala.toList
var
zamiastval
modyfikować zmiennąvar list
ival slist
były niepotrzebne. Myślę, że skomplikowali tę odpowiedź, więc skonsolidowałem je i uprościłem odpowiedź. @ jijeshvu07 Jeśli się nie zgadzasz, z przyjemnością cofnę zmianę i prześlę tę zmianę jako własną odpowiedź.Począwszy
Scala 2.13
od pakietuscala.collection.JavaConverters
jest oznaczany jako przestarzały na korzyśćscala.jdk.CollectionConverters
:źródło
Importuj
JavaConverters
, brakowało odpowiedzi @fynntoList
źródło