Java Kotlin调用提供的Unit类型参数

Java Kotlin调用提供的Unit类型参数,java,kotlin,Java,Kotlin,我现在和科特林有点纠结 在Java中,我要做的是: public void doSomething(Consumer<String> onResult) { ... onResult.accept("Hello"); } 现在如何将值传递给onResult fun doSomething(onResult: (message: String) -> Unit) { onResult.apply { "Hello" } } 或者怎么做?使用普通的方法调

我现在和科特林有点纠结

在Java中,我要做的是:

public void doSomething(Consumer<String> onResult) {
    ...
    onResult.accept("Hello");
}
现在如何将值传递给onResult

fun doSomething(onResult: (message: String) -> Unit) {
    onResult.apply { "Hello" }
}

或者怎么做?

使用普通的方法调用。在
doSomething
方法中,您的参数是一个函数。所以您可以使用
onResult(“Hello”)将值传递给传入函数

只是一个想法

//Also you can call like this method 
fun tryMySolution() {
    mainMethod("hi", ::functionAsParam)
}

onResult
参数的行为类似于普通函数。您可以使用
onResult(“Hello”)
调用它。您可以使用
invoke
方法调用参数函数,或者只调用函数:

fun main(args: Array<String>) {
    doSomething{ s -> println(s)}
    doSomething{ s -> println("You entered $s")}
}

fun doSomething(onResult: (message: String) -> Unit) {
    onResult("bla") // Invoke the passed function with a specific string
    // Note that onResult.invoke("bla") also does the same thing.
}

您不需要调用
invoke
。您可以直接使用
onResult(“bla”)
调用它。
//Also you can call like this method 
fun tryMySolution() {
    mainMethod("hi", ::functionAsParam)
}
fun main(args: Array<String>) {
    doSomething{ s -> println(s)}
    doSomething{ s -> println("You entered $s")}
}

fun doSomething(onResult: (message: String) -> Unit) {
    onResult("bla") // Invoke the passed function with a specific string
    // Note that onResult.invoke("bla") also does the same thing.
}
bla
You entered bla