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.

  • El complemento kapt no funciona con gradle-script-kotlin
  • VertX Web no elimina cookies
  • El código de Vertx Sync se ejecuta varias veces
  • Vert.x. ¿Cómo crear una aplicación de JVM políglota real?
  • Verticle (s) de Vert.x configuration JSON / YAML (preferible por entorno)
  • ¿Cómo puedo get una request web actual usando Vert.x Web?
  • Enrutamiento de contenido estático en VertX