Java8 函数式编程(二)

Java8 函数式编程(二)

针对 有两个点需要注意

1、ClassA::method的使用

可以可以代表两个意思,两种调用方式:

1、当前ClassA对象a调用的普通无参数方法method;

2、ClassA类的static有参(参数类型是当前对象类型)方法method(当前对象类型 a);

当ClassA类中既有static方法method,有又普通的方法method时,ClassA::method会报错

如下示例:

而如果将上图中的static方法的static关键字去掉,则恢复正常。

因为会默认找普通无参方法

所以在一些情况下使用ClassA::methodB,需要注意,ClassA中是否存在同名、同返回的有参静态方法且参数类型就是当前对象类型

如,在使用如下

为什么strMap可行,而intMap不行?

那是因为

Integer中 存在如下两个方法


2、new ClassA()::method的使用

区别于ClassA::method

使用对象调用方法method

默认是调用的有参方法,方法参数是被执行的对象。

如下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 和 Lambda 表达式 Say Hello 如果用一大段枯燥的文字去解释一个我们并不熟悉的概念,我觉得和看天书...
    小白聊技术阅读 1,820评论 0 0
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,872评论 6 13
  • 在Collection中新加了一个默认方法 这个方法的作用是返回一个stream,这到底是用来做什么的呢? A s...
    packet阅读 3,398评论 0 1
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,845评论 0 9
  • 被妈妈叫醒的时候已是中午,我揉着眼睛,从沙发上挣扎着坐起,只感到嗓子冒烟,鼻腔冒火。我妈摸了摸我的额头,发现我果然...
    林蛋大阅读 1,209评论 0 0