美文网首页
Lambda表达式---语法

Lambda表达式---语法

作者: CC晨_程序小生 | 来源:发表于2018-12-19 10:21 被阅读0次

Lambda表达式---语法

Lambda表达式它由三个部分组成:

  1. 第一部分为一个括号内用逗号分隔的参数列表,参数即函数式接口里面方法的参数;
  2. 第二部分为一个箭头符号:->
  3. 第三部分为方法体,可以是表达式和代码块
    语法如parameter -> expression body

语言的设计者们思考了很多如何让现有的功能和lambda表达式友好兼容。于是就有了函数接口这个概念。函数接口是一种只有一个方法的接口,函数接口可以隐式地转换成 Lambda 表达式。

函数式接口的重要属性是:我们能够使用 Lambda 实例化它们,Lambda 表达式让你能够将函数作为方法参数,或者将代码作为数据对待。Lambda 表达式的引入给开发者带来了不少优点:在 Java 8 之前,匿名内部类,监听器和事件处理器的使用都显得很冗长,代码可读>性很差,Lambda 表达式的应用则使代码变得更加紧凑,可读性增强;Lambda 表达式使并行操作大集合变得很方便,可以充分发挥多核 >CPU 的优势,更易于为多核处理器编写代码。

源代码

public class NewFeaturesTester {
    public static void main(String args[]){
        NewFeaturesTester tester = new NewFeaturesTester();
        // 带有类型声明的表达式
        MathOperation addtion = (int a , int b) -> a + b;
        // 没有类型声明的表达式
        MathOperation subtraction = (a , b) -> a - b;
        // 带有大括号带有返回语句的表达式
        MathOperation multiplication = (int a ,int b) -> {return a * b;};
        // 没有大括号和return语句的表达式
        MathOperation division = (int a ,int b) -> a/b;
     。
        // 输出结果
        System.out.println("10 + 5 = " + tester.operate(10, 5, addtion));
        System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
        System.out.println("10 * 5 = " + tester.operate(10, 5, multiplication));
        System.out.println("10 / 5 = " + tester.operate(10, 5, division));

        // 没有括号的表达式
        GreetingService greetService1 = message -> System.out.println("Hello1 "+message);
        // 有括号的表达式
        GreetingService greetService2 = (message) -> System.out.println("Hello2 "+message);

        //调用sayMessage方法输出结果
        greetService1.sayMessage("Shiyan");
        greetService2.sayMessage("Classmate");

    }

    //下面定义的一些接口和方法
    interface MathOperation{
        int operation(int a,int b);
    }

    interface GreetingService{
        void sayMessage(String message);
    }

    private int operate(int a ,int b,MathOperation mathOperation){
        return mathOperation.operation(a , b);
    }

}

运行结果

10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
10 / 5 = 2
Hello1 Shiyan
Hello2 Classmate
```

相关文章

网友评论

      本文标题:Lambda表达式---语法

      本文链接:https://www.haomeiwen.com/subject/smmlkqtx.html