相关疑难解决方法(0)

如何在Java中将函数作为参数传递?

是否可以将方法作为参数传递给Java方法?如果是这样,有人可以指导我吗?这似乎并不重要

java

395
推荐指数
6
解决办法
50万
查看次数

Kotlin:如何将函数作为参数传递给另一个?

给定函数foo:

fun foo(m: String, bar: (m: String) -> Unit) {
    bar(m)
}
Run Code Online (Sandbox Code Playgroud)

我们可以做的:

foo("a message", { println("this is a message: $it") } )
//or 
foo("a message")  { println("this is a message: $it") }
Run Code Online (Sandbox Code Playgroud)

现在,假设我们有以下功能:

fun buz(m: String) {
   println("another message: $m")
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将"buz"作为参数传递给"foo"?就像是:

foo("a message", buz)
Run Code Online (Sandbox Code Playgroud)

kotlin

112
推荐指数
5
解决办法
5万
查看次数

为什么在Java中实现返回单元的Kotlin函数时必须返回Unit.INSTANCE?

如果我有Kotlin功能

fun f(cb: (Int) -> Unit)
Run Code Online (Sandbox Code Playgroud)

我想用fJava 调用,我必须这样做:

f(i -> {
     dosomething();
     return Unit.INSTANCE;
});
Run Code Online (Sandbox Code Playgroud)

这看起来很丑陋.为什么我不能这样写f(i -> dosomething());,因为Unit在Kotlin中相当于voidJava?

java kotlin kotlin-interop

38
推荐指数
1
解决办法
9341
查看次数

标签 统计

java ×2

kotlin ×2

kotlin-interop ×1