ich den nächsten Code haben:Zukunft und Scala: Mismatch-Datentyp
package controllers.usersPage
import play.api.mvc._
import play.api.libs.json._
import model.{User, Users, Patients, CObject}
import scala.concurrent.Future
import service.{UserService}
class allUsersToJSON() extends Controller {
def convertUsersToJsonOrig(lusers: Seq[User]): JsValue = {Json.toJson(
lusers.map { u => Map("id" -> u.id, "firstName" -> u.firstName, "lastName" -> u.lastName, "email" -> u.email, "username" -> u.username, "password" -> u.password)}) }
def retAllUsers = Action { request =>
Ok(Json.stringify(convertUsersToJsonOrig(Users.listAll)))
}
}
Aber, ich bin die nächste Störung zu erhalten:
$ compile
[info] Compiling 69 Scala sources and 3 Java sources to
H:\project\target\scala-2.11\classes...
[error] H:\project\app\controllers\usersPage\retrieveAllUsersJSON.scala:29: type mismatch;
[error] found : scala.concurrent.Future[Seq[model.User]]
[error] required: Seq[model.User]
[error] Ok(Json.stringify(convertUsersToJsonOrig(Users.listAll)))
[error] ^
[warn] Class com.sun.tools.xjc.Options not found - continuing with a stub.
[warn] one warning found
[error] one error found
[error] (root/compile:compileIncremental) Compilation failed
[error] Total time: 7 s, completed Apr 17, 2017 10:51:11 AM
Die Anweisung Users.listAll ist eine Zukunft eine, die geben Sie mir eine Liste von Benutzerobjekten, die ich in JSon konvertieren muss. Wie ich sehe, gibt mir dieser Befehl den Datentyp scala.concurrent.Future [Seq [model.User]]. Wie kann ich tun, um die Seq [model.user] von diesem Befehl zu bekommen, damit ich es in convertUsersToJsonOrig verwenden kann? Dank
Ich musste hinzufügen: importieren play.api.libs.concurrent.Execution.Implicits.defaultContext danach alles sehr gut gearbeitet !! Vielen Dank –