У меня есть метод, которому в качестве аргумента требуется тип String
:
type Identity = String
case class RequireSmth(param: Identity) extends Something
Теперь я вызываю этот метод в более сложном порядке:
createMe(as[List])(arg =>{ parse(RequireSmth(getAction(name, surname).map(bool => getData(surname, bool).id))) })
Parse
выглядит как:
def parse(ob: Something)
Где:
def getAction(name: String, surname: String): Future[Boolean] = {
someObject.get(name).map(_.getSomething(surname).isPossibleToTake.getOrElse(false)) //someObject is defined in constructor and does not matter here
}
def getData: (String, Boolean) => MyObject = {
case ("Doe", true) => possible
case _ => notPossible
}
MyObject
, possible
и notPossible
определение:
case class MyObject(id : String, name: String, surname: String)
val possible = MyObject( id = "ok", name ="John", surname = "Doe")
val notPossible = MyObject( id = "not ok", name ="John", surname = "Doe")
Проблема в том, когда я вызов метода RequireSmth
Я получил ошибку:
type mismatch;
found: scala.concurrent.Future[String]
required: com.my.smth.Identity (which expands to) String
Как я могу решить эту проблему, чтобы вернуть Identity
(или String
) вместо Future[String]
?