从Java8开始,我们就可以通过Java8中的StrameAPI与Lambda表达式实现函数式编程,可以让代码变得更加高效简洁。现在很多企业的生产代码已经开始使用Java8了,对于还没有使用过Java8进行的编程的朋友们可以好好的学习一下,我在企业中写Java8也有一段时间了,我想把我在实际开发中用到的一些场景与大家分享一下,大部分例子都来源于我开发项目中的实例。其中我开发中用得比较多的是,Optional,SteameAPI与lambda。本文是实战帖,不做过多理论分析,直接讲场景与应用。Java9已经出来一段时间了,我发现我周围的很多做开发的朋友对Java8中的一些新特性仍然不是很了解,也没在生产代码中使用过Java8,不过我相信,很快,大部分公司都会用上Java8的,我觉得Java8与Java5一样,是jdk历史上重要的一个版本更新,能给Java编程带来巨大变化的一个版本。
filter从名字上看,就知道是用来过数据过滤的,filter的函数式接口中需返回一个boolean值。findFirst是取其中的第一个,可以返回一个Optional对象。通过get方法我们很轻松的拿到了我们想要的结果。
当ofNullable值为null时,我们可以给bigAbmout赋一个默认值。orElseGet的传参数是一个函数式接口,代码可以把它写成
枚举中我们通常会与一个静态方法通过code去获取它对应的枚举,没有用java8我们一般是通过for循环实现的,看看java8代码:
我们原来代码中的遇到的函数式接口,我们就可以用lambda来代替,简单的来说,就是new接口的地方。比如MQ发消息,我们传统的做法:
用法都比较类似,这里就不一一列举了。下面看一个去重的。stream下面的方法也就那么多个,要用的时候可以一个个点来看看,从英文意思我们可大概知道那些方法基本上用来做什么的了。其实很多用法我也是在实际开发中慢慢研究出来的,也没看很多的资源。
在实际的开发中,能应用的场景还有很多,我列举的一些可能用得会相对多一些,也有很多应用场景我没有提到,java8函数式编程的也许远远不止这些,以后遇到好的场景我再补充,如果大家有好的应用,欢迎留言讨论。
本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何。