java中的双冒号操作符
java :: Java中的双冒号操作符
</h1><div class="clear"></div><div class="postBody">
java中的双冒号操作符
定义
双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion。
通常的情况下:
把 x -> System.out.println(x) 简化为 System.out::println 的过程称之为 eta-conversion
把 System.out::println 简化为 x -> System.out.println(x) 的过程称之为 eta-expansion
范式:
类名::方法名
注意:
- 方法后面并没有()
- 懒加载方法是否调用要看调用方使用情况
使用范例
方法调用
person -> person.getAge();
可以替换成
Person::getAge
x -> System.out.println(x)
可以替换成
System.out::println
out是一个PrintStream类的对象,println是该类的方法,依据x的类型来重载方法
创建对象
() -> new ArrayList<>();
可以替换为
ArrayList::new
new关键字实际上调用的是ArrayList的构造方法
JVM实现
JVM底层实现是CallSite,对JDK层暴漏的接口是Functional
引用
http://hongjiang.info/eta-conversion-and-eta-expansion/
<div id="blog_post_info">
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/yanlong300/p/9197181.html" class="p_n_p_prefix">« </a> 上一篇: <a href="https://www.cnblogs.com/yanlong300/p/9197181.html" title="发布于 2018-06-19 09:40">《什么叫会工作》阅读心得</a>
<br>
<a href="https://www.cnblogs.com/yanlong300/p/9214984.html" class="p_n_p_prefix">» </a> 下一篇: <a href="https://www.cnblogs.com/yanlong300/p/9214984.html" title="发布于 2018-06-22 18:21">关于java中Stream理解</a>
</div><!--end: topics 文章、评论容器-->
· 特斯拉欧洲超级工厂为何建在德国而不是英国?马斯克如此解释
· 阿里巴巴招股书全文:马云持股6.1% 今年交易总额5.7万亿元
· 暗物质和暗能量 物理学天空这两朵乌云何时才能消散
· 微软杀毒软件 Microsoft Defender 将发布 Linux 版本
· 大疆:只要有智能手机,就能跟踪附近的无人机
» 更多新闻...
<div id="sideBar"><div id="sideBarMain">
<div id="profile_block">昵称:<a href="https://home.cnblogs.com/u/yanlong300/">枫飘雪落</a><br>园龄:<a href="https://home.cnblogs.com/u/yanlong300/" title="入园时间:2017-07-07">2年4个月</a><br>粉丝:<a href="https://home.cnblogs.com/u/yanlong300/followers/">30</a><br>关注:<a href="https://home.cnblogs.com/u/yanlong300/followees/">1</a><div id="p_b_follow">
+加关注
<div id="blog-calendar" style="">
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
<div id="leftcontentcontainer"><div id="blog-sidecolumn">
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
</h3><ul><li>
DB(6)
</li><li>
Java(31)
</li><li>
JavaScript(4)
</li><li>
services(2)
</li><li>
设计模式(25)
</li></ul></div><div id="sidebar_postarchive" class="catListPostArchive sidebar-block"><h3 class="catListTitle">
随笔档案
</h3><ul><li>
2019年5月(2)
</li><li>
2018年10月(2)
</li><li>
2018年9月(1)
</li><li>
2018年8月(1)
</li><li>
2018年6月(4)
</li><li>
2018年5月(8)
</li><li>
2018年4月(4)
</li><li>
2018年3月(5)
</li><li>
2018年2月(18)
</li><li>
2018年1月(6)
</li><li>
2017年12月(6)
</li><li>
2017年11月(2)
</li><li>
2017年10月(5)
</li><li>
2017年9月(8)
</li><li>
2017年8月(1)
</li><li>
2017年7月(2)
</li></ul></div>
推荐排行榜
- 1. 并发研究之CPU缓存一致性协议(MESI)(11)
- 2. JVM内存管理概述(1)
- 3. 并发之AQS原理(三) 如何保证并发(1)
- 4. 并发研究之Java内存模型(Java Memory Model)(1)
</div><!--end: sideBarMain --> </div><!--end: sideBar 侧边栏容器 --> <div class="clear"></div> </div>
java中的双冒号操作符相关推荐
- java lambda 表达式中的双冒号和箭头的用法 ::
先构造一些数据,创建一个User类 java lambda 表达式中的双冒号的用法 :: 双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 如下图所示 User是一个类, ...
- java lambda 两个冒号_java lambda 表达式中的双冒号的用法说明 ::
双冒号运算就是java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面没有括号"()"哒.为啥不要括号,因为这样的是式子并不代表一定会调用这个方法.这种 ...
- Fortran执行语句中的“双冒号” ::
双冒号"::",通常出现于Fortran在变量声明中,但是在特殊情况下,也会出现于数组中.例如: ... real,target,dimension(10):: a real,po ...
- c语言中双冒号意思_详解C++中的双冒号 ::
C++中的双冒号 ::第一种,类作用域,用来标明类的变量.函数 Human::setName(char* name); 第二种,命名空间作用域,用来注明所使用的类.函数属于哪一个命名空间的 std:: ...
- java中的双引号和单引号
在js中,单双引号不作区分,这导致我在java中产生了混淆. 在写一段判断某字符是否为空格的代码时,编译器报错,我才意识到是单引号用成了双引号. 关于java中的单双引号,需要注意以下几点: 1.ja ...
- Makefile中的双冒号规则
双冒号规则就是使用"::"代替普通规则的":"得到的规则.当同一个文件作为多个规则的目标时,双冒号规则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规 ...
- 『C/C++养成计划』C++中的双冒号::名解析(Scope Resolution Operator)
C++中的双冒号::名解析(Scope Resolution Operator)! 文章目录 1. 访问命名空间中的成员 2. 访问类中的静态成员 3. 嵌套类访问 4. 在类之外定义函数 5. 当存 ...
- java中的双与_java 双冒号是什么操作符?
双冒号::在JDK8的Lambda表达式函数中开始使用,用作方法引用. 具体用法,咱们来举个例子: 假设有个Person类: public class Person { public enum Sex ...
- java零碎要点013---java lambda 表达式中的双冒号的用法 ::
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面 ...
最新文章
- 802.1AE保护局域网安全
- linux集群命令关闭其中一台,自己整理的一点Linux命令集
- 第七章 进程环境 | 001 命令形参、gcc与g++的使用
- STM32 网络通信Web Server中 SSI与CGI的应用解析
- 一些常用的linux命令(2)
- 联想微型计算机启天e4300,戴尔轻薄商务本Latitude E4200/E4300开卖
- 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、
- 线程池开门营业招聘开发人员的一天
- viso怎么控制连接线_什么是节气门?多久清洗一次?怎么清洗?
- 吴恩达机器学习总结二:单变量线性回归
- 第六步_安装SSH服务
- 1053 Path of Equal Weight (30 分)一般树的遍历 DFS+vector容器+sort排序
- STM32 CANFD波特率计算器
- modelsim vopt
- 一键u盘装系统ghost win7 64位教程
- IIS 启动不了(发生意外错误0x8ffe2740)
- 3600万中国人在抖音“上清华”。
- 量子信息革命引领未来科技革命 | 科技导报
- 纯HTML+CSS实现动画
- 职业高中计算机英语教案,职业高中英语第三册教案.doc
热门文章
- 弹性云服务器由虚拟私有云组成,弹性云服务器组成
- 基于Qt的QSplashScreen实现桌面水印,在windows下置顶失效解决办法
- 如何查看本地是否安装oracle, 查看安装的Oracle客户端版本
- VMware Tools 详细安装教程及问题解决
- Gitlab安装使用及汉化配置
- centos8无法nmcli connection up ens33 或无法ifconfg到ens33网卡信息
- 使用虚拟机VMwarepro1623镜像文件导入部署openGauss3.1.1指导手册
- js模块化(ESModule与CommonJS)
- 如何理解最大似然估计?
- Error: C9555E: License checkout for feature LIC0=KA...-.....-..... with version 5.0201503 has been
【培训】马士兵老师强势回归!Java线下课程全免费,双十一大促!
【活动】京东云服务器_云主机低于1折,低价高性能产品备战双11
【推荐】天翼云双十一翼降到底,云主机11.11元起,抽奖送大礼
【优惠】腾讯云 11.11智惠上云,爆款提前购与双11活动同价
【福利】个推四大热门移动开发SDK全部免费用一年,限时抢!
【优惠】七牛云采购嘉年华,云存储、CDN等云产品低至1折
· Java8中的[方法引用]“双冒号”——走进Java Lambda(四)
· Java8Lambda表达式之方法引用::双冒号操作符
· Java8Lambda表达式之方法引用::双冒号操作符
· java8新特性_::双冒号
· php里的双冒号::操作符与箭头->操作符的区别
» 更多推荐...