J'ai cette méthode Scala avec l'erreur ci-dessous. Impossible de convertir en liste Scala.
def findAllQuestion():List[Question]={
questionDao.getAllQuestions()
}
incompatibilité de type; trouvé: java.util.List[com.aitrich.learnware.model.domain.entity.Question]
requis:
scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]
list
scala
scala-java-interop
boycod3
la source
la source
Réponses:
effectuera une conversion implicite pour vous; par exemple:
la source
scala.collection.JavaConversions._
est obsolète en faveur descala.collection.JavaConverters._
donc cette réponse est meilleurescala.jdk.CollectionConverters._
partir de la version 2.13. Les détails peuvent être trouvés ici .Vous pouvez simplement convertir la liste en utilisant Scala
JavaConverters
:la source
Buffer
est un JavaList
, alors rien ne va! L'OP voulait une conversion de la liste Java en une liste Scala immuable. Les expressions qui attendent une ScalaList
ne seront pas vérifiées avec unBuffer
..toList
donc le code estquestionDao.getAllQuestions().asScala.toList
la source
var
s? En outre, il semble que les deux dernières lignes pourraient être combinées en une seule lignelist.asScala.toList
var
au lieu deval
si vous ne modifiez pas la variablevar list
etval slist
étaient inutiles. Je pense qu'ils ont compliqué cette réponse, alors je les ai consolidés et simplifiés. @ jijeshvu07 Si vous n'êtes pas d'accord, je serais heureux d'annuler la modification et de soumettre cette modification à la place comme sa propre réponse.À partir de
Scala 2.13
, le packagescala.collection.JavaConverters
est marqué comme obsolète au profit descala.jdk.CollectionConverters
:la source
Import
JavaConverters
, la réponse de @fynn était manquantetoList
la source