我认为在 Kotlin 中,Unit
相当于Void
. 使用 Vert.x 服务发现,不可能将 a 传递Future<Unit>
给unpublish(String id, Handler<AsyncResult<Void>> resultHandler)
(给出类型不匹配),但它会Future<Void>
毫无问题地接受。为什么会这样,是否有解决方案,或者我只能忍受 using Void
?
问问题
295 次
1 回答
3
Unit
不等同于Void
,它等同void
于 kotlin.
在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;
}
最后,单元文档还说:
只有一个值的类型:Unit 对象。该类型对应于 Java中的void类型。
于 2017-06-27T06:49:05.777 回答