Java 无效返回类型在Kotlin中是什么意思

Java 无效返回类型在Kotlin中是什么意思,java,kotlin,void,return-type,Java,Kotlin,Void,Return Type,我尝试在Kotlin中创建函数而不返回值。我用Java编写了一个函数,但是使用了Kotlin语法 fun hello(name: String): Void { println("Hello $name"); } 我犯了个错误 错误:在具有 块体(“{…}”) 经过几次修改后,我得到了返回类型为null Void的工作函数。但这并不是我所需要的 fun hello(name: String): Void? { println("Hello $name"); return

我尝试在Kotlin中创建函数而不返回值。我用Java编写了一个函数,但是使用了Kotlin语法

fun hello(name: String): Void {
    println("Hello $name");
}
我犯了个错误

错误:在具有 块体(“{…}”)

经过几次修改后,我得到了返回类型为null Void的工作函数。但这并不是我所需要的

fun hello(name: String): Void? {
    println("Hello $name");
    return null
}
根据单位类型对应于Java中的void类型。因此,在Kotlin中不返回值的正确函数是

fun hello(name: String): Unit {
    println("Hello $name");
}


问题是:在Kotlin中,
Void
是什么意思,如何使用它,以及这种用法的优点是什么?

Void
在Java中是一个对象,它的意思是“无”。
在Kotlin中,“nothing”有专门的类型:

  • Unit
    ->取代java的
    void
  • Nothing
    ->“一个永远不存在的值”

现在在Kotlin中,您可以引用
Void
,就像您可以引用Java中的任何类一样,但您确实不应该这样做。相反,请使用
单元
。另外,如果您返回
Unit
,您可以忽略它。

Void
是一个普通的Java类,在Kotlin中没有特殊意义

同样,您可以在Kotlin中使用
Integer
,这是一个Java类(但应该使用Kotlin的
Int
)。您正确地提到了两种不返回任何内容的方法。所以,在Kotlin
Void
中是“某物”

您得到的错误消息确切地告诉您。您指定了一个(Java)类作为返回类型,但没有在块中使用return语句

如果你不想退回任何东西,请坚持这一点:

fun hello(name: String) {
    println("Hello $name")
}

Void
(实际上是:)不是一个对象,它是Java中的一个类。您不能创建此类的实例。@Jesper您可以返回
null
。相关:
fun hello(name: String) {
    println("Hello $name")
}