Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java代码中以函数作为参数调用Kotlin函数?_Java_Android_Lambda_Kotlin - Fatal编程技术网

如何在Java代码中以函数作为参数调用Kotlin函数?

如何在Java代码中以函数作为参数调用Kotlin函数?,java,android,lambda,kotlin,Java,Android,Lambda,Kotlin,我有一个kotlin方法,如下所示: fun methodWithCallBackAsParameter(callback:() -> Unit) { //Do Somejob callback() } 在kotlin中,我们仅使用以下语法的此方法: methodWithCallBackAsParameter { //Some Instructions here. } 现在我想在Java类中使用这个Kotlin方法,但我不知道如何使用。只需在lambda表达式的

我有一个kotlin方法,如下所示:

fun methodWithCallBackAsParameter(callback:() -> Unit) {
    //Do Somejob
    callback()
}
在kotlin中,我们仅使用以下语法的此方法:

methodWithCallBackAsParameter {
    //Some Instructions here.
}

现在我想在Java类中使用这个Kotlin方法,但我不知道如何使用。

只需在lambda表达式的末尾返回Unit.INSTANCE。

如果你想在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
  }
}

要了解更多信息,请在Java中使用此文档:
callback:()->Unit=new Function0()

,我相信您希望这样做

公共类程序{
公共静态void main(字符串[]args){
FunctionKt.methodWithCallBackAsParameter(()->{
System.out.printf(“做某事”);
返回null;
});
}
}

在本例中,函数
methodWithCallBackAsParameter
是在
function.kt
文件中定义的。

methodWithCallBackAsParameter(()->{})工作?它说缺少返回语句。我尝试返回Unit.INSTANCE;现在它说,Lambda表达式在语言级别7不受支持。如果您使用的是Android Studio 3.0+,那么您只需将一段代码复制粘贴到build.gradle中即可启用Java 8语言功能,请参见我尝试返回的Unit.INSTANCE;现在,语言级别7不支持Lambda表达式。请将语言级别设置为1.8或将Lambda转换为匿名类。发生此错误是因为Java 1.8支持lambda,并且您的项目使用Java 1.7。