「Java」方法引用,使用起来最简洁的Java语法
文章图片
文章图片
文章图片
文章图片
今天是刘小爱自学Java的第48天 。
感谢你的观看 , 谢谢你 。
话不多说 , 开始今天的学习:
昨天回顾了函数式编程的一些概念 。
今天开始学习方法引用 , 它是lambda表达式的进一步简化版 , 语法还要更加地简洁 。
一、方法引用现有一个需求:
将一个字符串信息全部转换成大写字母 , 再打印出来 。
利用函数式编程思想编写代码 。
1.lambda表达式编写
①函数式接口Printable
这是一个自定义的打印接口 , 有一个打印信息的抽象方法printMsg()
②lambda表达式
method方法中有两个参数 , 用lambda表达式表示的是接口的实现类对象 。 并且在lambda表达式中 , 业务逻辑已经写出来了 。
什么叫业务逻辑?
我的理解是方法内容:根据什么参数得到了什么结果 。
上述例子中就是:根据传过来的字符串消息(也就是参数msg)
结果将msg全部变成大写字母(msg.toUpperCase)
这就是业务逻辑 , 当然我举的这个例子非常简单 , 现实里肯定要复杂的多 。
2.方法引用
方法引用是用来代替lambda表达式的 , 更加地简洁 , 从某种意义上来说 , 它们的作用其实是差不多的 。
①方法引用
具体格式为:new MyPrint()::printMsg
核心是这个双冒号“::” , 如何理解这个格式?
就可以理解成是MyPrint对象在调用printMsg方法 。
为什么它能直接这样使用?因为它的逻辑已经存在 , 也就是MyPrint类中有printMsg方法以及其业务逻辑
②业务逻辑
将字符串msg全部变成大写字母 , 这就相当于是在MyPrint类中重写了接口中的抽象方法 。
3.方法引用和lambda表达式:
现在问题来了:方法引用不是对lambda表达式的简化么?怎么感觉代码还越来越繁琐了?
我们只看①而言 , 方法引用要比lambda表达式简单吧?
如果我使用方法引用 , 该业务逻辑无论被使用多少次 , 我只需要写一次 , 其它时候直接调用;
如果我是用lambda表达式 , 我每调用一次就要将业务逻辑写一遍 。
所以方法引用的简洁之处在于相同逻辑不需要重复地写 。
这样理解下来 , 方法引用要比lambda表达式简洁很多 , 尤其是在业务逻辑很复杂的时候
当然方法引用的前提:业务逻辑已经存在 。
- 如果逻辑已经存在 , 我直接使用方法引用即可 ,
- 如果逻辑不存在 , 还是乖乖地写lambda表达式 。
1.类名引用
如果是静态方法 , 直接用类名就可以调用方法 。
Java底层中已经写好了很多工具类 , 其大多数方法都是静态方法 , 直接使用方法引用会方便很多 。
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- Python之王|Pandas数据合并与拼接的5种方法
- 课工场郑州翔天信鸽|JavaScript最常用,java是主流,JetBrains公布编程语言排名
- 猿灯塔|POI Excel,Java架构-Apache
- 【Java】github上标星70.5k,贼火的Java突击手册,全面详细对标阿里P7
- 节能罗茨风机|如何控制罗茨鼓风机风量和更换滤芯的步骤和方法
- 徐涛老师|准研究生们!最易懂的文献阅读和管理方法来啦!
- 海峡网|微信拍一拍搞笑后缀要怎么设置?微信拍一拍修改自定义后缀文字方法
- 「编程」后台编程语言互相争执,为何前端公认JavaScript?
- 腾讯@JAVA如何连接数据库