I'm facing a very strange error dealing with Strings in one of my Scala application which I cannot reason about! What I have is an Observer that looks like this:
class MqttObserver[String] extends Observer[String] {
private val logger = Logger.of[MqttObserver[String]]
override def onNext(elem: String): Future[Ack] = {
logger.info(s"Got a message from Mqtt broker $elem")
Continue
}
override def onError(ex: Throwable): Unit = {
logger.error(s"Stream error happened ${ex.getMessage}")
}
override def onComplete(): Unit = {
logger.info(s"Stream ended")
}
}
I'm then calling the onNext(elem: String) from the
Here is the error:
[error] found : java.lang.String
[error] required: String(in class MqttObservable)
[error] mqttObserver.onNext(message.getPayload.toString)
This is how I make the call!
val callback: MqttCallback = new MqttCallback {
override def connectionLost(cause: Throwable): Unit = {
logger.info(cause)
}
override def deliveryComplete(token: IMqttDeliveryToken): Unit = {
}
override def messageArrived(topic: Predef.String, message: MqttMessage): Unit = {
mqttObserver.onNext(message.getPayload.toString) // FAILS HERE!!!!
logger.info("Using Default Console Callback --> Receiving Data, Topic : %s, Message : %s".format(topic, message))
}
}