学会这招,再也不用写重复代码了,Consumer你值得拥有!

举报
香菜聊游戏 发表于 2021/07/15 01:39:01 2021/07/15
【摘要】       最近一直在忙功能的事情,基本上每天加班到至少十点半,好累,希望上线的功能一切安好。 在写代码的过程中,发现有很多重复的代码,idea 黄线提醒,很烦人,但是有时又不想抽取方法,今天介绍一个方式,可以提高代码的整洁性和代码的稳定性。让你打开一片天空,瞬间将重复代码一降再降。 函数式接口的总介绍:一篇文章掌握...

 

    最近一直在忙功能的事情,基本上每天加班到至少十点半,好累,希望上线的功能一切安好。

在写代码的过程中,发现有很多重复的代码,idea 黄线提醒,很烦人,但是有时又不想抽取方法,今天介绍一个方式,可以提高代码的整洁性和代码的稳定性。让你打开一片天空,瞬间将重复代码一降再降。

函数式接口的总介绍:一篇文章掌握lambda,function下41个类

Consumer 是java 8 提供的函数式接口,看下源码。

andThen 方法是让Consumer可以链式处理的方法,不是今天的重点。

Consumer 是一个接收一个参数的一个函数,或者说一块代码块,这块代码块可以出现在任何地方。

下面介绍下应用场景:

1、Consumer 作为处理函数出现,在流程精细控制时使用。看代码吧

需求:我需要推送给大厅内所有玩家消息,但是消息的内容是不确定的,具体的逻辑实现放在外面。

创建这样一个函数,将玩家id传递给consumer,做具体的处理。

看看怎么调用的:

看懂了吗?推送的消息处理放在了里面,重复的逻辑不会再出现。开心。你学会了吗?

2、Consumer 作为代码块使用,简短的重复的代码,局部使用,定义,替换。看代码吧

同样的代码,只是传入的参数不同,但是这几行代码在其他地方又调用不到,所以没必要生成方法,此处用Consumer进行代码块提取,将原来重复的几行代码合并,减少代码行数,减少因为复制修改改错的风险,真是优美,你学会了吗?

还有其他的一些Consumer,用法是一样的,只是参数不同,举一反三即可。

总结:Consumer 是java 8 提供的函数式接口,代表着一块代码块,可以方便的解决重复代码的问题,还不赶快用起来吗?

提前祝大家中秋国庆快乐,不知道我什么时候才想起来写下篇文章。

文章来源: gamwatcher.blog.csdn.net,作者:香菜聊游戏,版权归原作者所有,如需转载,请联系作者。

原文链接:gamwatcher.blog.csdn.net/article/details/108652654

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。