Ошибка компиляции вывода типа Kotlin при использовании API-интерфейса Akka

Я хочу использовать API-интерфейс Akka в программе Kotlin. Когда я хочу установить onComplete callback для akka Future , я сталкиваюсь с ошибкой компилятора Kotlin, в то время как эквивалент java работает хорошо:

 val future: Future<Any> = ask(sender, MyActor.Greeting("Saeed"), 5000) future.onComplete(object : OnComplete<Object>() { override fun onComplete(failure: Throwable?, success: Object?) { throw UnsupportedOperationException() } }, context.dispatcher()) 

Код java:

 Future<Object> future = ask(sender(), new MyActor.Greeting("Saeed"), 5000); future.onComplete(new OnComplete<Object>() { public void onComplete(Throwable failure, Object result) { if (failure != null) { System.out.println("We got a failure, handle it here"); } else { System.out.println("result = "+(String) result); } } },context().dispatcher()); 

Ошибка компилятора Kotlin:

 Error:(47, 24) Kotlin: Type inference failed: fun <U : kotlin.Any!> onComplete(p0: scala.Function1<scala.util.Try<kotlin.Any!>!, U!>!, p1: scala.concurrent.ExecutionContext!): kotlin.Unit cannot be applied to (<no name provided>,scala.concurrent.ExecutionContextExecutor!) Error:(47, 35) Kotlin: Type mismatch: inferred type is <no name provided> but scala.Function1<scala.util.Try<kotlin.Any!>!, scala.runtime.BoxedUnit!>! was expected 

Я подтолкнул проект к github .

Ну, сообщение об ошибке может быть немного непонятным из-за большого количества материалов Scala и <no name provided> , но оно четко определяет точку ошибки: ваша функция должна принимать Any , а не Object . Следующие коды компилируются без каких-либо проблем:

 val future: Future<Any> = ask(sender, MyActor.Greeting("Saeed"), 5000) future.onComplete(object : OnComplete<Any?>() { override fun onComplete(failure: Throwable?, success: Any?) { throw UnsupportedOperationException() } }, context.dispatcher()) 
Intereting Posts
Котлин не видит аксессуаров Java Lombok? Spring Data JPA / Hibernate "Невозможно найти атрибут с заданным именем" Вызов функции в фрагменте представления пейджера из активности Java ArrayList в Kotlin Array Перехватить каждый элемент представления завышенным? Как я могу повторно использовать / составлять часть запроса JOOQ в методе репозитория? Передача списка объектов в фрагмент Как вызвать функцию после задержки в Котлине? Как получить завершение кода IntelliJ IDEA для импорта статических методов Java в качестве функций верхнего уровня Kotlin? Элементы RecyclerView не отображаются, пока я не прокручу его Spring WebFlux: разрешен только один абонент Ошибка компиляции Котлина: ни одна из следующих функций не может быть вызвана с предоставленными аргументами Как GpioCallback регистрирует «ложь» дважды подряд? Android Kotlin – Не удается вызвать onNavigationItemSelected метод Компонент (не облачный) может не ссылаться на привязки с привязкой