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

标签 java lambda

我现在正在学习如何使用 lambda 表达式,我看过一些带有简单示例的教程:

(int x) -> x + 5;

但是我的编译器显示这个错误:

Syntax error, insert "AssignmentOperator Expression" to complete Expression

我是不是忘记了什么?

最佳答案

Lambda 表达式始终必须分配给函数接口(interface)的引用类型(也称为单一抽象方法接口(interface))。事实上,它们为冗长的匿名类(使用单一方法)实现提供了快捷方式。

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

例如,您的表达式可以分配给以下功能接口(interface):

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
   }
}

关于java - 简单 lambda 表达式代码的 "AssignmentOperator Expression"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40922604/

相关文章:

c# - 创建批量文件的算法

string - 将字符串转换为过程

java - Hibernate:对象被删除但仍然可以被Hibernate加载

java - 应用 onItemClickListener 后,我的 ListView 显示为 null

python - 在单个 AWS Lambda 中使用两个 python 函数 boto3

c++ - 可以采用 lambda 或函数指针并推断参数以传递给另一个模板的模板函数

java - java中的lambda表达式是否仍然可以压缩

java - 比较文本框中的字符串

java - 即使 websocket 连接处于 Activity 状态, session 也已过期

java - 如何使用 jackson 将自定义解串器添加到接口(interface)