Lambda表达式。首先是参数部分,接着是->,可以视为产出,->之后的内容都是方法体。

  • 当只有一个参数时,可以不需要括号();
  • 正常情况使用()包裹参数,为了保持一致性,也可以使用括号()包裹单个参数;
  • 如果没有参数,则需要使用()表示空参数列表;
  • 对于多个参数,将参数列表放在()内;
  • 如果Lambda表达式中需要多行,那就需要将这些行放在花括号中,并且需要使用return返回产出。
示例
() → System.out.println("Zero parameter");
(p) → System.out.println("One parameter p="+ p);
(a b c) → System.out.println("Multiple parameter a="+ a+" b="+b+" c="+c); (a b) -> {
int sum=a+b;
return sum;
}
public static void main(String[] args) {
/**
* Function<T, R>: 接收1个输入参数,返回1个结果
*/
Function<Integer, Integer> func1 = i -> {return i+5;};
System.out.println(calculate(6, func1)); /**
* BiFunction<T, U, R> 接受1个入参T和U,并返回结果R。
*/
BiFunction<String, Integer, String> biFunction = (key, value) -> {return (key + ":" + String.valueOf(value));};
String key = "age";
Integer value = 18;
System.out.println(biFunction.apply(key, value)); /**
* Supplier 生产功能函数,无入参,返回1个结果。
*/
Supplier<String> supplier = () -> {return "Supplier: 商品";};
System.out.println(supplier.get()); /**
* Consumer 消费函数,接收1个输入参数并且无返回的操作
*/
Consumer<String> consumer1 = s -> System.out.println(s + ",我是消费者1");
consumer1.accept("铁甲小宝"); /**
* BiConsumer<T, U> 消费函数,接受2个输入参数的操作,并且不返回任何结果。
*/
BiConsumer<String, Integer> biConsumer1 = (s, i) -> {
System.out.println("我是消费逻辑1" + "," + s + "," + (i + 4));
};
biConsumer1.accept("铁甲小宝", 6); /**
* Predicate 断言函数,接受1个输入参数,返回1个布尔值结果。
*/
// 断言输入值是否大于10
Predicate<Integer> isSuperTen = i -> {return i>10;};
System.out.println("P:"+ isSuperTen.test(11));
System.out.println("P:"+ isSuperTen.test(6)); /**
* BiPredicate<T, U> 对2个输入参数T和U进行断言,返回1个布尔值输出。
*/
// 判断输入1是否大于10,且输入2小于20
BiPredicate<String, Integer> biPredicate = (s, i) -> {
return Integer.parseInt(s) > 10 && i < 20;
};
System.out.println("B:"+biPredicate.test("15", 16));
System.out.println("B:"+ biPredicate.test("15", 21)); } public static Integer calculate(Integer i, Function<Integer, Integer> function){
return function.apply(i);
}

Function--jdk8用法的更多相关文章

  1. boost::function的用法

    本片文章主要介绍boost::function的用法. boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象. 1.  介绍 Boost.Func ...

  2. boost::bind 和 boost::function 基本用法

    这是一篇介绍bind和function用法的文章,起因是近来读陈硕的文章,提到用bind和function替代继承,于是就熟悉了下bind和function的用法,都是一些网上都有的知识,记录一下,期 ...

  3. c/c++ 重载运算符 标准库function的用法

    重载运算符 标准库function的用法 问题:int(int, int)算不算一种比较通用的类型?? 比如函数: int add(int a, int b); 比如lambda:auto mod = ...

  4. python3新特性函数注释Function Annotations用法分析

    本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Functi ...

  5. (function(){})()的用法

    最近在整理javascript 学习,发现这个问题了 ,在网上发现这么个解释 最清楚 最明白 : (function(){})() 相当于先定义 function xx(){},后调用 xx(); ( ...

  6. Extjs中renderer:function函数用法

    renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){ } 1.value是当前单元格的值 2.cellme ...

  7. $(function(){})和$(document).ready(function(){}) 的用法

    当文档载入完毕就执行,以下几种效果是等价的:1. $(function(){ //这个就是jQuery ready()的简写,即下2的简写 // do something }); 2. $(docum ...

  8. c++11:function的用法

    function是函数.函数对象.函数指针.和成员函数的包装器,可以容纳任何类型的函数对象,函数指针,引用函数,成员函数的指针 普通函数 #include <functional> voi ...

  9. js中,(function(){})()的用法解析

    (function($){...})(jQuery)  含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...

  10. ECharts中color : function的用法(转)

    ECharts图表实战经验1:如何设置图表同序列不同数据点的独立颜色值   最近有不少朋友在追问这样一个问题:我单序列的柱状图,我想让每一个根柱子的颜色都不一样,应该如何做? 针对这个问题,其实我只想 ...

随机推荐

  1. 洛谷5789 [TJOI2017]可乐(矩阵快速幂,Floyd思想)

    题意:可乐机器人有三种行为: 停在原地,去下一个相邻的城市,自爆.它每一秒都会随机触发一种行为.现在给加里敦星球城市图,在第 0秒时可乐机器人在 1号城市,问经过了 t秒,可乐机器人的行为方案数是多少 ...

  2. Markdown语法入门与进阶指南

    一.Markdown简介 Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(john Gruber).它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文 ...

  3. 华企盾DSC导致金蝶导入Excel导入不了的问题

    需要把Excel的OLE控制关掉,并且金蝶的进程和Excel的进程高级设置要么都启用重定向,要么都不启用重定向

  4. 数字孪生和VR结合能够为自身带来怎样的改变?

    随着科技的不断发展,数字孪生和虚拟现实(VR)这两个前沿技术正在逐渐融合,为各行各业带来了前所未有的改变. 数字孪生技术本身已经可以高度还原现实世界,而VR技术则能通过头戴式设备,让用户沉浸在这个虚拟 ...

  5. Asp.net core Webapi 如何执行定时任务?

    前言 在计算机系统中,定时执行一些后台任务是很常见的场景,比如定时发送邮件.备份数据等等. 那么,.NET 技术如何通过编程灵活地实现项目里复杂的自定义任务呢? 如果是 Windows 生态,通常来说 ...

  6. java注释、变量、数据类型和运算符

    注释 单行注释:// 多行注释:/*开头,*/结尾 JavaDoc注释:/**开头,*/结尾 快捷键:ctrl + ? 变量 第一步:声明变量.即根据数据类型在内存分配空间. 第二步:赋值.即将数据的 ...

  7. 苹果推信群发,苹果推信群发软件,iMessage群发系统

    在当今数字化的时代,智能手机的普及率已达到了前所未有的高度,其中,苹果公司的iPhone无疑是市场上最受欢迎的智能手机之一,然而,与手机的广泛应用相伴的是,众多企业对于如何有效地向这些手机用户推送信息 ...

  8. Mysql索引失效的几种原因-mysql-suo-yin-shi-xiao-de-ji-zhong-yuan-yin

    title: Mysql索引失效的几种原因 date: 2021-07-15 17:13:59.019 updated: 2021-12-26 17:43:12.489 url: https://ww ...

  9. Vulntarget-b-wp

    Vulntarget-b 环境配置 centos7 用户 密码 root root vulntarget root 宝塔Linux面板http://192.168.0.104:8888/045b276 ...

  10. ubuntu设置系统字符集为中文

    第一步:查看自己系统的字符集 先查看系统的默认字符集格式:locale 或者cat /etc/default/locale root@JumpServer-APP-T02:~# locale LANG ...