简单lambda表达式代码上的"AssignmentOperator Expression"错误

Mat*_*eus 4 java lambda

我现在正在学习如何使用lambda表达式,并且我已经看到了一些简单示例的教程:

(int x) -> x + 5;
Run Code Online (Sandbox Code Playgroud)

但我的编译器显示此错误:

Syntax error, insert "AssignmentOperator Expression" to complete Expression
Run Code Online (Sandbox Code Playgroud)

我忘记了什么吗?

dev*_*per 8

Lambda表达式总是必须分配给Functional Interafces的引用类型(也称为单个抽象方法接口).事实上,它们为详细的匿名类(使用单个方法)实现提供了快捷方式.

因此,简单来说,Lambda表达式=抽象方法实现(功能接口).

例如,您的表达式可以分配给以下功能界面:

public interface MyInterface {//define Functional Interafce (SAM)
    public int someMethod(int a);
}

public class Test {
   public static void main(String[] args) {
        MyInterface myInterface = (int a) -> a +5;//assign the expression to SAM
        int output = myInterface.someMethod(20)); //returns 25
   }
}
Run Code Online (Sandbox Code Playgroud)