Bar*_*man 4 java lambda kotlin
我可以从 Java 调用这个 Kotlin 方法吗?
fun foo(() -> Unit)
如果是这样,语法是什么?
您需要创建以下实例Function0
:
foo(new Function0<Unit>() {
@Override
public Unit invoke() {
// Here should be a code you need
return null;
}
});
Run Code Online (Sandbox Code Playgroud)
或者如果您使用 Java 8,则可以简化
foo(() -> {
// Here should be a code you need
return null;
});
Run Code Online (Sandbox Code Playgroud)
您可以调用它,但需要注意返回类型。如果您的 Kotlin 函数返回Unit
,Java 将需要返回Unit
或null
,因为void
与Unit
.
我的例子有效:
foo(() -> {
System.out.println("Hi");
return null;
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您想真正明确Unit
...
foo(() -> {
System.out.println("Hi");
return Unit.INSTANCE;
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
606 次 |
最近记录: |