У меня есть этот код, где я пытаюсь вызвать частичную функцию. Когда я создаю свой проект, я получаю сообщение об ошибке missing parameter type ++ headerExtractor.applyOrElse(event, _ => Map.empty)
.
Я просмотрел другие сообщения, но я чувствую, что это должно работать. Что я делаю не так?
Я вызываю здесь headerExtractor
private def publishToProfileExchange(customer: Schema.Customer, event: Schema.CustomerEvent): Future[Done] = {
val messageType: String = "ProfileEvent"
val headers: Map[String, AnyRef] = Map(
"profileId" -> customer.id.toString,
"eventType" -> event.eventType,
"type" -> messageType
) ++ headerExtractor.applyOrElse(event, _ => Map.empty)
...
//valid return values would be here
}
private val headerExtractor: PartialFunction[Schema.CustomerEvent, Map[String, AnyRef]] = {
case x if x.eventType.equalsIgnoreCase("message") && (x.eventData \ "incoming").asOpt[Boolean].getOrElse(false) =>
Map("incomingMessage" -> "true")
}
applyOrElse
отбрасывается какUnit
(вызовет предупреждение компиляции с соответствующими параметрами) - person cchantep   schedule 25.07.2017Any
илиAnyRef
снижает безопасность типов и предотвращает помощь от компилятора. - person cchantep   schedule 25.07.2017