• 系列四、Java8的Lambda表达式


    一、概述

            Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。

            Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 "→" , 该操作符被称为 Lambda 操作符或箭头操作符。它将 Lambda 分为两个部分:
            左侧:指定了 Lambda 表达式需要的所有参数
            右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能

    二、案例代码

    2.1、定义函数式接口 

    1. /**
    2. * @Author : 一叶浮萍归大海
    3. * @Date: 2023/11/20 10:14
    4. * @Description: 定义函数式接口
    5. */
    6. @FunctionalInterface
    7. public interface LambdaCalculator {
    8. /**
    9. * 加
    10. *
    11. * @param x
    12. * @param y
    13. * @return
    14. */
    15. public int add(int x, int y);
    16. /**
    17. * 减
    18. *
    19. * @param x
    20. * @param y
    21. * @return
    22. */
    23. default int sub(int x, int y) {
    24. return x - y;
    25. }
    26. /**
    27. * 乘
    28. *
    29. * @param x
    30. * @param y
    31. * @return
    32. */
    33. default int mul(int x, int y) {
    34. return x * y;
    35. }
    36. /**
    37. * 除
    38. * @param x
    39. * @param y
    40. * @return
    41. */
    42. public static int div(int x, int y) {
    43. return x / y;
    44. }
    45. }

    2.2、使用函数式接口

    1. /**
    2. * @Author : 一叶浮萍归大海
    3. * @Date: 2023/11/20 10:18
    4. * @Description: 函数式编程
    5. * 口诀:
    6. * 1、拷贝小括号(形参列表),写死右箭头 ->,落地大括号 {方法实现}
    7. * 2、有且只有一个public方法,@FunctionalInterface注解增强定义
    8. * 3、default方法默认实现
    9. * 4、静态方法实现
    10. */
    11. public class LambdaCalculatorMainApp {
    12. public static void main(String[] args) {
    13. LambdaCalculator calculator = (x, y) -> {
    14. System.out.println("Hello Lambda!");
    15. return x + y;
    16. };
    17. System.out.println("=========> add:" + calculator.add(6, 2));
    18. System.out.println("=========> sub:" + calculator.sub(6, 2));
    19. System.out.println("=========> mul:" + calculator.mul(6, 2));
    20. System.out.println("=========> div:" + LambdaCalculator.div(6, 2));
    21. }
    22. }

    2.3、结果

    三、小总结

    3.1、定义函数式接口

    1、类型为接口

    2、有且只有一个public方法,@FunctionalInterface注解增强定义

    3、default方法默认实现

    4、静态方法实现

    思考:Runnable接口为什么可以使用Lambda表达式?

    3.2、Lambda表达式使用口诀

    拷贝小括号(),写死右箭头→,落地大括号{…}

  • 相关阅读:
    36二叉树-翻转二叉树
    【MySQL】表的增删改查(进阶)
    GeoTools快速入门
    社区论坛小程序源码系统,功能齐全,页面简洁,前端+后端+完整部署教程
    【毕业季·进击的技术er】1076万毕业生,史上最难就业季?卷又卷不过,躺又躺不平,敢问路在何方?
    12.验证码以及付费代理
    数据治理要点
    构建模型三要素与权重初始化
    2023-11-17 事业-代号s-imagemagick-安装与使用
    如何用Android Studio实现登录跳转
  • 原文地址:https://blog.csdn.net/HelloWorld20161112/article/details/134501372