Java8特性学习

Lambda表达式

  • Lambda表达式

    • Lambda表达式为Java添加了缺失的函数式编程特 性,使我们能将函数当做⼀等公⺠看待
    • 在将函数作为⼀等公⺠的语⾔中, Lambda表达式 的类型是函数。 但在Java中, Lambda表达式是对象,他们必须依附于⼀类特别的对象类型———函数式接⼝(functional interface)
    • Lambda表达式可以被赋给一个变量,或传递给一个接受函数式接口作为参数的方法
  • 语法

    (parameters) -> expression 或 (parameters) ->{ statements; }

在这里插入图片描述

  • 函数式接⼝

    • 函数式接⼝是只包含⼀个自定义(Object方法覆盖的不属于自定义)抽象⽅法声明的接口。
    • 比如:java.lang.Runnable 就是⼀种函数式接⼝,在Runnable 接⼝中只声明了⼀个⽅法 void run()
    • 每个 Lambda 表达式都能隐式地赋值给函数式接⼝
  • @FunctionalInterface注解

    • 标识所声明的接⼝为函数式接⼝
    • 如果不满⾜函数式接⼝的要求,则编译器报错
    • 并⾮必须,但凡满⾜函数式接⼝条件的接⼝,编译器均将其看作是函数式接⼝,即便没有添加FunctionalInterface注解亦如此

Lambda表达式可以被赋给一个变量,或传递给一个接受函数式接口作为参数的方法

函数式接口和描述

在这里插入图片描述
在这里插入图片描述

学习资料:
跟上Java8 - 带你实战Java8

JAVA8十大新特性详解(精编)
快速记忆总结篇。


发布了25 篇原创文章 · 获赞 7 · 访问量 940

猜你喜欢

转载自blog.csdn.net/m0_46485771/article/details/104697550