私はちょうどKotlinを学び始めました。ラムダの構文に問題があります。小さなクラスがあります:Kotlin:ラムダは決してコンパイルされない
class MathFunctions {
@FunctionalInterface
interface Operation {
fun calculate(a: Int, b: Int): Int
}
fun makeCalculations(a: Int, b: Int, operation: Operation): Int = operation.calculate(a, b)
companion object {
@JvmStatic
fun main(args: Array<String>) {
val plus = Operation { a, b -> a + b }
val mathFunctions = MathFunctions()
println(mathFunctions.makeCalculations(10, 20, plus))
}
}
}
ラムダに何か問題があるため、クラスはコンパイルされません。 Javaの場合は次のようになります。
public class MathFunctions {
@FunctionalInterface
interface Operation {
int calculate(int a, int b);
}
public int makeCalculations(int a, int b, Operation operation) {
return operation.calculate(a, b);
}
public static void main(String[] args) {
Operation plus = (a, b) -> a + b;
MathFunctions example = new MathFunctions();
System.out.println(example.makeCalculations(10, 20, plus));
}
}
修正する必要はありますか?私はすでにIntellij IdeaのJavaからKotlinへの自動変換を試みましたが失敗しました。