1
Ich versuche, von Java zu Kotlin zu konvertieren. Die aktuelle Java-Schnittstelle ist so etwas wie diese:Kotlin Lambdas ohne Objekte zu verwenden
interface MyInterface {
void foo(int x, int y);
}
MyInterface testing = (int a, int b) -> System.out.print("TESTING");
Meine aktuelle Kotlin Umwandlung ist:
interface MyInterface {
fun foo(x:Int, y:Int)
}
val kotlinConversion = object: MyInterface {
override fun foo(x: Int, y: Int) {
println("TESTING")
}
}
Gibt es eine Möglichkeit die Variable kotlinConversion
so zu schreiben, dass es die in Java ähnlich ist, ohne die Funktion außer Kraft setzen?
Benötigen Sie sie eine Schnittstelle sein? Ein Funktionstyp könnte möglicherweise genauso gut funktionieren. – chris
Ich denke, damit wir alle antworten können, brauchen wir eine bessere Vorstellung von Ihrem Anwendungsfall. Was Sie in Kotlin haben, ist nicht, wie man es in Kotlin machen würde. Auf der anderen Seite, wenn Sie eine funktionale Schnittstelle in Java haben, können Sie ein Lambda verwenden, und es wird korrekt umgewandelt/umgewandelt. Wenn es alles Kotlin-Code ist, dann wird, wie Chris sagte, wahrscheinlich ein Funktionstyp sein. So etwas wie val kotlinConversion: (Int, Int) -> Einheit = {x, y -> println ("TEST")} – Mikezx6r
Dies wurde hier im Kotlin Forum diskutiert. https://discuss.kotlinlang.org/t/kotlin-sam-traits-as-lambda-functions/279 @ Mikezx6r Antwort ist die vorgeschlagene Lösung. – jitinsharma