不使用对象的Kotlin lambdas

不使用对象的Kotlin lambdas,lambda,kotlin,Lambda,Kotlin,我正在尝试从java转换到kotlin。当前的java接口如下所示: interface MyInterface { void foo(int x, int y); } MyInterface testing = (int a, int b) -> System.out.print("TESTING"); 我目前的kotlin转换为: interface MyInterface { fun foo(x:Int, y:Int) } val kotlinConversio

我正在尝试从java转换到kotlin。当前的java接口如下所示:

interface MyInterface {
    void foo(int x, int y);
}

MyInterface testing = (int a, int b) -> System.out.print("TESTING");
我目前的kotlin转换为:

interface MyInterface {
    fun foo(x:Int, y:Int)
}

val kotlinConversion = object: MyInterface {
    override fun foo(x: Int, y: Int) {
        println("TESTING")
    }
}

是否有一种方法可以编写变量
kotlinConversion
,使其与java中的变量类似,而无需重写函数?

无需重写函数,您可以像这样直接使用

var kotlinConversion = { a: Int, b: Int -> print("TESTING") }

你需要它成为一个界面吗?一个函数类型可能也能很好地工作。我认为为了让我们中的任何一个人回答这个问题,我们需要更好地了解您的用例。你在科特林所拥有的并不是一个人在科特林会怎么做。另一方面,如果您在Java中有一个函数接口,那么您可以使用Lambda,它将得到正确的转换/处理。如果都是Kotlin代码,那么正如chris所说,您可能需要一个函数类型。类似于val kotlinConversion:(Int,Int)->Unit={x,y->println(“测试”)}这已经在kotlin论坛中讨论过了@Mikezx6r答案是建议的解决方案。