Kotlin Vertxtypes不匹配发现未来预期处理程序<AsyncResult >
我以为在Kotlin, Unit
就相当于Void
。 使用Vert.x服务发现,不可能传递Future
来unpublish(String id, Handler<AsyncResult> resultHandler)
(给出types不匹配),但它将接受Future
没有任何问题。 为什么是这样的,有没有一个解决方案,或者我只需要生活在使用Void
?
Unit
不等于Void
,相当于kotlin中的void
。
在Java中, void
是一个关键字,但是Void
是一个类。 所以下面的代码不能被编译:
fun foo():Void{/**need return a Void instance exactly**/} fun bar():Void{ return Unit; } // ^--- type mismatch error
java应用相同的规则,例如:
Void canNotBeCompiled(){ // must return a Void instance exactly. } Void foo(){ return Void.TYPE; } Void nil(){ return null; }
最后, 单位文件还说:
只有一个值的types:Unit对象。 这个types对应于Java中的voidtypes。