写在前面 我们已经知道,lambda表达式是一个匿名函数,可以用lambda表达式来实现一个函数式接口. 很自然的,我们会想到类的方法也是函数,本质上和lambda表达式是一样的,那是否也可以用类的方法来实现一个函数式接口呢?答案是可以的.我们称之为方法引用(method reference). 本文的示例代码可从gitee上获取:https://gitee.com/cnmemset/javafp 方法引用 一个典型例子,向一个Map中写入单词以及它的长度: public stati
什么是方法引用 我们知道了什么是Lambda Expression以及如何使用,那么,Method References又是什么呢?Oracle Java Docs中这样说: They are compact, easy-to-read lambda expressions for methods that already have a name. 也就是说,它是把已经定义好的有名字的方法,当作Lambda Expression来使用. 它的常用语法为:className::methodName
Method结构体是啥? 在Dalvik虚拟机内部,每个Java方法都有一个对应的Method结构体,虚拟机根据此结构体获取方法的所有信息. Method结构体是怎样定义的? 此结构体在不同的android版本稍有变化,但是结构体前面比较重要的一部分(从clazz到nativeFunc)完全没有变化.以下是android4.4.2_r2的Method结构体定义(位于/dalvik/vm/oo/Object.h). /* * A method. We create one of these for