Kotlin Vertx Type Mismatch encontrado Future <Unit> expected Handler <AsyncResult <Void >>

Pensé que en Kotlin, Unit era equivalente a Void . Con Vert.x Service Discovery, no es posible pasar una Future<Unit> para unpublish(String id, Handler<AsyncResult<Void>> resultHandler) (da una discrepancia de tipo) pero aceptará Future<Void> sin ningún problema . ¿Por qué es esto y hay una solución o tendré que vivir con el uso de Void ?

Unit no es equivalente a Void , es equivalente a void en kotlin.

En java, void es una palabra key, pero Void es una class. por lo que el código a continuación no se puede comstackr:

 fun foo():Void{/**need return a Void instance exactly**/} fun bar():Void{ return Unit; } // ^--- type mismatch error 

java aplica la misma regla, por ejemplo:

 Void canNotBeCompiled(){ // must return a Void instance exactly. } Void foo(){ return Void.TYPE; } Void nil(){ return null; } 

Finalmente, la documentation de la Unidad también dice:

El tipo con un solo valor: el object Unidad. Este tipo corresponde al tipo de vacío en Java.

  • Retrofit-Vertx con RxJava2 en Kotlin IllegalStateException message == null
  • Sirve favicon.ico y otros files estáticos con VertX
  • ¿Cómo puedo get una request web actual usando Vert.x Web?
  • Vert.x. ¿Cómo crear una aplicación de JVM políglota real?
  • Vertx plus Koutlin coroutines cuelga para siempre
  • Tengo una request de Vertx y necesito calcular una URL externa visible (pública)
  • Vert.x Kotlin Type Mismatch requinetworking Controlador <AsyncResult <Unit >> found (Handler <AsyncResult <Unit >>) -> Unidad