首页 > 编程语言 > 详细

Java8

时间:2020-03-29 23:52:07      阅读:108      评论:0      收藏:0      [点我收藏+]

Lambda表达式

 

lambda表达式需要“函数式接口”的支持 。接口中只有一个抽象方法的接口称为函数式接口

可以使用注解@FunctionalInterface修饰, 可以检查是否是函数式接口

java8内置得4大核心函数式接口:

一、Consumer<T>:消费型接口  void accept(T t)

二、Supplier<T>:供给型接口  T get()

三、Function<T, R>:函数型接口  R apply(T t)

 四、Predicate<T>:断言型接口  boolean test(T t)

还有其他接口请参考javaAPI,如果找不到满足要求的接口,可以自己定义。

左侧:Lambda表达式的参数列表(数据类型可以不写,JVM编译器会通过上下文推断数据类型,即“类型推断”)

右侧:Lambda表达式中需要执行的功能,即Lambda体

语法格式1:
// 左侧无参数,右侧无返回值
() -> System.out.println("Lambda");
语法格式2:
// 左侧 只有有一个参数,右侧 无返回值
(name) -> System.out.println(name);
// 左侧 只有一个参数,右侧 参数可以不加括号
name -> System.out.println(name);

   语法格式3:

// 左侧大于一个参数,右侧 有返回值,且Lambda体中有多条语句
Comparator<Interger> com = (x,y) -> { System.out.println("Lambda函数式接口") return Integer.compare(x,y); }

   语法格式4:

// 右侧Lambda体中只有一条语句,return和大括号都可以不写
Comparator<Interger> com = (x,y) -> Integer.compare(x,y);

 

 

技术分享图片

Java8

原文:https://www.cnblogs.com/Alwaysbecoding/p/12595606.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!