博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java8 - Lambda表达式
阅读量:6693 次
发布时间:2019-06-25

本文共 972 字,大约阅读时间需要 3 分钟。

hot3.png

Java8 之 Lambda表达式

Java8 中的 Lambda表达式 需要“函数式”接口的支持;

1.函数式接口

函数式接口 :只有一个抽象方法的接口;

1.1 常用的函数式接口

  • 消费型接口:

Consumer<T>

void accept(T t);
  • 供给型接口:

Supplier<T>

T get();
  • 函数型接口:

Function<T, R>

R apply(T t);
  • 断言型接口:

Predicate<T>

boolean test(T t);

其他函数式接口可在 包中获取学习;

1.2 自定义函数式接口

@FunctionalInterfacepublic interface XXX
{ XXX xxx(T t , ...);}

注意:

  • 使用 @FunctionalInterface 标识类,表示这是一个函数式接口,内部只能存在一个抽象方法;

2.Lambda表达式

结构 : (...) -> {...}

-> Lambda操作符 (或称为 剪刀操作符 )

左边 入参

右边 Lambda 体,即 Lambda 表达式要执行的功能

2.1 案例

Consumer<String> consumer = (t) -> System.out.println(t);

Supplier<String> supplier = () -> "hello";

Function<String, String> function = (t) -> t + "world";

Predicate<Integer> predicate = (t) -> t >= 60;

3.类型推断

Lambda 表达式中无需指定类型,程序依然可以编译,这是因为 javac 根据程序的上下文,在后台推断出了参数的类型。 Lambda 表达式的类型依赖于上下文环境,是由编译器推断出来的。这就是所谓的“类型推断”。

注意:

  • Lambda表达式 与 函数式接口 中的方法,入参和出参都是一一对应的;
  • 左边只有一个入参时,() 可以不写;
  • 右边代码块只有一句时,{} 可以不写;
  • 入参的类型是由JVM自动推断得到的;

转载于:https://my.oschina.net/mengzhang6/blog/2254593

你可能感兴趣的文章
我的友情链接
查看>>
presto Resource Groups
查看>>
我的友情链接
查看>>
慢工出细活,Facebook点赞按钮设计中的门道
查看>>
思科路由器配置命令一览表
查看>>
Git 远程操作
查看>>
我的友情链接
查看>>
iostat命令解析
查看>>
linux Containers——试用lxc
查看>>
linux运维实战练习-2016年1月19日-2月3日课程作业(练习)安排
查看>>
行为型模式:中介者模式
查看>>
政府信息化建设重点——服务、多元化
查看>>
学习像树一样活着!
查看>>
Linux操作系统分析(10) - 进程通信之管道与信号量
查看>>
UpdateData()
查看>>
0001 kali linux 学习之起航篇
查看>>
在UnitedStack公有云上DevStack快速部署Openstack
查看>>
使用Xcode和Instruments调试解决iOS内存泄露
查看>>
Volley使用方法
查看>>
我的友情链接
查看>>