Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针

 

1.1. java方法引用(Method References) 与c#委托与脚本语言js的函数指针这几个概念是类似的,1

1.2. java方法引用(Method References) 方法引用分为4类1

1.3. 范例3

 

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://www.cnblogs.com/attilax/

Atiend

Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针的更多相关文章

  1. JAVA 8 方法引用 - Method References

    什么是方法引用 简单地说,就是一个Lambda表达式.在Java 8中,我们会使用Lambda表达式创建匿名方法,但是有时候,我们的Lambda表达式可能仅仅调用一个已存在的方法,而不做任何其它事,对 ...

  2. Java 8Lambda之方法引用(Method References)

    方法引用分为4类,方法引用也受到访问控制权限的限制,可以通过在引用位置是否能够调用被引用方法来判断.具体分类信息如下: 类型 使用方式 静态方法 ContainingClass::staticMeth ...

  3. 方法引用(Method References)

    * 方法引用的使用 * * 1.使用情境:当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用! * * 2.方法引用,本质上就是Lambda表达式,而Lambda表达式作为函数式接口 ...

  4. java 方法引用(method reference)

    it -> it != null等价于Objects::nonNull

  5. 方法引用(Method reference)和invokedynamic指令详细分析

    方法引用(Method reference)和invokedynamic指令详细分析 invokedynamic是jvm指令集里面最复杂的一条.本文将详细分析invokedynamic指令是如何实现方 ...

  6. Java中的函数式编程(四)方法引用method reference

    写在前面 我们已经知道,lambda表达式是一个匿名函数,可以用lambda表达式来实现一个函数式接口.   很自然的,我们会想到类的方法也是函数,本质上和lambda表达式是一样的,那是否也可以用类 ...

  7. atitit.java方法属性赋值and BeanUtils 1.6.1 .copyProperty的bug

    atitit.java分配给属性值方法and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&quo ...

  8. Java 方法引用_特性

    JAVA8 方法引用:(四种方法引用的使用) 对象引用的特点:不同的对象可以操作同一块的内容:而方法引用就是指为一个方法设置别名,相当于一个方法定义了不同的名字. 引用静态方法: 类名称 :: sta ...

  9. Lambda方法推导(method references)

    在上一篇[http://www.cnblogs.com/webor2006/p/7707281.html]中提到了方法推导的东东: 这里说细的学习一下它,下面走起! Method references ...

随机推荐

  1. maven nexus私服搭建,特别痛苦!!

    一.下载nexu,配置环境 参考我的文章:http://www.cnblogs.com/quanyongan/archive/2013/04/24/3037589.html 二.解压并准备Nexus安 ...

  2. doxygen的使用(一)配置并生成文档

    原创文章,欢迎阅读,禁止转载. doxygen是个好用的文档生成工具,他的强大功能有很多介绍,我就不说了.自带的chm帮助手册很全面,包括功能.注释规范.怎么配置.工具用法等.doxygen的用法共3 ...

  3. Swift语法简介(二)闭包

    突然看到别人写的关于Block的帖子,让我突然有一种想写一篇关于闭包的帖子.在我的认知中,Swift中的闭包,就是Object-C中的Block--(或许我的认知太浅了).先上一个闭包的简单例子 le ...

  4. activity管理

    public class MainApp extends Application { private static ArrayList<WeakReference<Activity> ...

  5. jq点击元素删除父级

    首先要能找到父级:需要操作的dom结构如下: <tbody> <tr> <td>星期一早起</td> <td class="status ...

  6. Python学习之路-Day4

    1.函数 函数定义 def  func(aa):         def:表示函数的关键字  func:函数名,即函数的名称,可根据函数名调用函数 print('.....')        prin ...

  7. 统一SDK接入(U8SDK)——总体思路和架构

    题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360……据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同 ...

  8. 更改apache网站根目录导致localhost不能访问

    使用xampp或wamp安装完集成环境后,更改apache的网站根目录会导致localhost,localhost/phpmyadmin访问不到. 解决方法: 打开apache的配置文件:“../ap ...

  9. windows下在文件夹中快速启动cmd

    在windows下,有时候由于特定需要,我们经常需要将cmd  cd到某文件下进行命令行操作,其实,这里有一个小技巧: 在一个文件下,按住shift键,然后点击鼠标右键,你就会发现菜单栏中多出一个“在 ...

  10. [C#进阶系列]专题二:你知道Dictionary查找速度为什么快吗?

    一.前言 在之前有一次面试中,被问到你了解Dictionary的内部实现机制吗?当时只是简单的了问答了:Dictionary的内部结构是哈希表,从而可以快速进行查找.但是对于更深一步了解就不清楚了.所 ...