Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
1.1. java方法引用(Method References) 与c#委托与脚本语言js的函数指针这几个概念是类似的,1
1.2. java方法引用(Method References) 方法引用分为4类1
1.1. java方法引用(Method References) 与c#委托与脚本语言js的函数指针这几个概念是类似的,
C#委托本质是函书接口,js是duck type原理。
1.2. java方法引用(Method References) 方法引用分为4类
方法引用的唯一用途是支持Lambda表达式的简写,不用Lambda表达式,就用不着方法引用
方法引用分为4类,常用的是前三种。方法引用也受到访问控制权限的限制,可以通过在引用位置是否能够调用被引用方法来判断。具体分类信息如下:
·
引用静态方法
ContainingClass::staticMethodName
例子: String::valueOf,对应的Lambda:(s) -> String.valueOf(s)
比较容易理解,和静态方法调用相比,只是把.换为::
·
·
引用特定对象的实例方法
containingObject::instanceMethodName
例子: x::toString,对应的Lambda:() -> this.toString()
与引用静态方法相比,都换为实例的而已
·
·
引用构造函数
ClassName::new
例子: String::new,对应的Lambda:() -> new String()
构造函数本质上是静态方法,只是方法名字比较特殊。
·
·
引用特定类型的任意对象的实例方法
ContainingType::methodName
例子: String::toString,对应的Lambda:(s) -> s.toString()
太难以理解了。难以理解的东西,也难以维护。建议还是不要用该种方法引用。
实例方法要通过对象来调用,方法引用对应Lambda,Lambda的第一个参数会成为调用实例方法的对象。
·
1.3. 范例
/**
* 静态方法当作另外一个静态方法
* @param args
*/
public static void main(String[] args) {
test( class1::method2);
}
private static void test( Runnable object) {
object.run();
}
private static void method2() {
System.out.println("aa");
}
Ref参考资料
JDK1.8新特性之方法引用(Method References) - 走马行酒醴,驱车布鱼肉 - 博客频道 - CSDN.NET.html
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
Atiend
相关文章
- import java.io 是什么意思_Java IO 详解
- java 输出_java怎么输出
- Java不可重入锁和可重入锁理解[通俗易懂]
- java启动器_JAVA基础:Java 启动器如何查找类
- java代码大全及详解_Java练级攻略[通俗易懂]
- java多线程面试题大全_java多线程面试题_线程并发面试题
- java技术介绍_Java技术汇总
- java基础:数组篇
- java 汉字乱码_Java中文乱码问题
- setproperty java_Java中System.setProperty()的用法
- java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key
- java 随机数算法_Java随机数算法原理与实现方法实例详解
- java 8 日期操作,真香!
- java notifyall_Java Thread notifyAll()方法[通俗易懂]
- 很黄色的JAVA游戏_《yellow》很黄!很暴力?居然有这么黄的游戏!
- java prototype是什么,Java设计模式之原型模式(Prototype模式)介绍
- 大数据必学Java基础(一百):员工管理系统开发
- Spring Boot快速接入Prometheus监控|写给Java开发运维
- 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )
- Java 微服务
- 你需要理解的 Java 反射机制知识总结详解编程语言
- 失效Java使用Redis实现数据过期失效(redisjava过期)
- 数据处理使用Java处理Redis中过期数据(redisjava过期)
- 堆栈探索Java构建Oracle堆栈的可能性(java建oracle)
- Oracle和Java结合,推出新一代商城系统(java oracle商城)