接上篇:
三、 Lambda表达式方法引用
方法引用是一种“Lambda表达式用来直接访问类或实例的已存在的普通方法或构造方法”的方法,提供了一种“只引用而不执行方法”的方式。
Java8对方法引用的支持,只是Java编译器层面的支持,Java虚拟机仍然执行的是函数接口的实现。当Java编译器遇到方法引用时,Java编译器会自动推断出并将方法引用还原成函数接口实现。可以这样认为,方法引用只是Java8提供的语法糖。
方法引用仍然是一个Lambda表达式,其中方法引用的操作符是双冒号“::”。主要有以下几种方法引用语法:
1. 构造方法引用语法
当Lambda表达式参数与调用的构造方法参数一致时,可以采用构造方法引用语法。
• 表达式语法
• 原始代码
• 优化代码
2. 静态方法引用语法
当Lambda表达式参数与调用的静态方法参数一致时,可以采用静态方法引用语法。
• 表达式语法
• 原始代码
• 优化代码
3. 实例方法引用语法
当Lambda表达式参数与调用的对象实例方法参数一致时,可以采用实例方法引用语法。
• 表达式语法
• 原始代码
• 优化代码
注意:
如果getLoginCount在本身所在的类中,可以把deviceService修改为this。
4. 参数类方法引用语法
当Lambda表达式只有一个参数且调用该参数的无参类方法时,可以采用参数类方法引用语法。
• 表达式语法
• 原始代码
• 优化代码
接下篇:https://developer.aliyun.com/article/1226757?groupCode=java