我的kotlin方法如下:
fun methodWithCallBackAsParameter(callback:() -> Unit) {
//Do Somejob
callback()
}
在kotlin中,我们只需使用以下语法即可使用此方法:
methodWithCallBackAsParameter {
//Some Instructions here.
}
现在,我想在Java类中使用此Kotlin方法,但我不知道该怎么做。
答案 0 :(得分:1)
只需在lambda表达式的末尾返回Unit.INSTANCE。
答案 1 :(得分:1)
如果要在android中使用lambda,则必须将应用程序更改为使用Java 1.8而不是1.7,可以使用gradle来实现
android {
...
// Configure only for each module that uses Java 8
// language features (either in its source code or
// through dependencies).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
有关更多信息,请参阅本文档https://developer.android.com/studio/write/java8-support
答案 2 :(得分:0)
我相信您想这样做。
public class Program {
public static void main(String[] args) {
FunctionKt.methodWithCallBackAsParameter(() -> {
System.out.printf("do something");
return null;
});
}
}
在本例中,函数 methodWithCallBackAsParameter
是在 function.kt
文件中定义的。
答案 3 :(得分:-1)
在 Java 中使用时:callback: () -> Unit = new Function0<>()