https://img2020.cnblogs.com/blog/1101843/202010/1101843-20201029092119794-1182278230.jpg

支付宝

https://img2020.cnblogs.com/blog/1101843/202010/1101843-20201029091740174-1560674849.png

微 信

Java8

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);

 

 一个免费的、不用注册的在线文件储存服务,最大可以上传 2GB,保存48小时。它会自动生成下载链接,可以分享给其他人

程序员用的搜索引擎

posted @ 2020-03-29 22:39  huangwanlin  阅读(185)  评论(0编辑  收藏  举报
Copyright 2012-2021 林云希科技有限责任公司