java8 :: 用法 (JDK8 双冒号用法)

特性

jdk8中使用了::的用法。就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下,双冒号运算就是Java中的[方法引用],[方法引用]的格式是:

  类名::方法名

注意此处没有()。

案例:

表达式:

person -> person.getAge();

使用双冒号:

Person::getAge

表达式:

new HashMap<>()

使用双冒号:

HsahMap :: new

部分代码案例

未使用双冒号

public class MyTest {public static void main(String[] args) {List<String> a1 = Arrays.asList("a", "b", "c");for (String a : a1) {printValur(a);};a1.forEach(x -> MyTest.printValur(x));}public static void printValur(String str) {System.out.println("print value : " + str);}
}

使用后

     a1.forEach(MyTest::printValur);Consumer<String> consumer = MyTest::printValur;a1.forEach(x -> consumer.accept(x));

未使用双冒号:

     List<String> list = a1.stream().map(x -> x.toUpperCase()).collect(Collectors.toList());System.out.println(list.toString());

使用双冒号:

ArrayList<String> collect = a1.stream().map(String::toUpperCase).collect(Collectors.toCollection(ArrayList::new));System.out.println(collect.toString());

JDK8 双冒号用法相关推荐

  1. java函数参数使用冒号_java8中:: 用法示例(JDK8双冒号用法)

    JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. 代码其实很简单: 以前的代码一般是如此的: public class Accep ...

  2. java8 :: 用法 (JDK8 双冒号用法)

    JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. 代码其实很简单: 以前的代码一般是如此的: public class Accep ...

  3. mysql 双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function  ...

  4. java 双冒号用法

    JDK8中有双冒号的用法,形如Class::methodname,符号左边是调用方法所处的类名,符号右边是调用的静态方法.简单的说,就是逐一传入参数值到某个类的静态方法并调用该静态方法. 以前的方式 ...

  5. java8学习之双冒号用法

    用法说明 JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. 类名::方法名 使用示例 person -> person.ge ...

  6. java双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function ...

  7. python列表截取双冒号“::“用法

    比如: my_list = list(range(0, 10)) 双冒号的用法是:列表[起始:终止:步长],默认是my_list[0:-1:1] 一个冒号-示例: my_list[1:2] # 等同于 ...

  8. 关于冒号和双冒号用法

    1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; X ...

  9. C++ 单冒号与双冒号用法

    1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; X ...

最新文章

  1. struts基本原理图
  2. python使用说明书-InfluxDB——python使用手册
  3. oracle手动启动服务
  4. mysql cmd ping_cmd命令行的ping用法
  5. php中延迟绑定,PHP静态延迟绑定
  6. 为什么说Java是2021年最值得学的技术?
  7. MySQL索引背后的数据结构及算法原理(转)
  8. iOS: 环信的推送
  9. django生产环境部署
  10. Unity 3D 进度条制作
  11. android网络框架
  12. [Java] 蓝桥杯ALGO-111 算法训练 明明的随机数
  13. java短信验证码实现_社交APP开发短信验证是通过什么技术实现
  14. SDOI 2018 R2 游记
  15. 浅谈IPFS星际文件系统和Filecoin是什么?
  16. 汉字转为16进制的unicode
  17. 【一起入门NLP】中科院自然语言处理作业一:RNN,DNN,CNN 进行猫狗分类(pytorch入门)【代码+报告】
  18. win7提示盗版 且各种工具无法激活
  19. 课后作业——Day7
  20. jzoj3461. 小麦亩产一千八 斐波拉契数列

热门文章

  1. 微信小程序----地理围栏实现员工防作弊地图打卡功能
  2. EDAS投会议论文遇见的问题及部分解决办法——总结
  3. java设置窗体不透明的函数_透明窗口(窗口上面文字图片等内容不透明)的实现(使用SetLayeredWindowAttributes API函数)...
  4. 图解网络:组建一个网络需要哪些网络设备和安全设备
  5. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装
  6. 谷歌adwords教程_区块链技术作为Google AdWords中的安全剧院
  7. Arduino Mixly入门到精通教程
  8. 磁链Ψ、磁通φ、磁势F
  9. No enclosing instance of type * is accessible. Must qualify the allocation with an enclosing instanc
  10. OpenCV--颜色通道分离和合并