Java 8 函数式编程-前言
从 Java 8 发布到现在已经过去很久了,现在 Java 9 也都已经发布了。国人的习惯总是你发布 8 的时候,我用 7 。你发布 9 的时候,我想 Java 8 应该是普及的时候了。那么正当时,还不来普及下 Java 8 的一个大特性,那就有点说不过去了。
引言 - 什么是函数式编程
函数式编程(Funtional Programming,以下简称 fp ),我想从 Java 8 发布之后大家对这个名词都不陌生,它有很多好处,减少代码,增加可读性等等。但是什么是函数式编程了?它和我们普通的 OOP 又有什么不同?
先来看一份常规打招呼的代码,在 Java7 之前我们大多是这么玩的:
1 | /** |
Java8 之后如果用函数式编程的方式改写代码:
1 | public static String greetJdk8(List<String> names) { |
两者对比起来我们会发现,干净利落,但是看不懂,没关系,之后我会告诉你上面用 Java8 写的代码的含义,并且你也能自己写 Functinal Program。
在开始之前,我想提前和你分享一些知识:
- 在fp中使用的所有变量都是
final的,final的含义意味着,在fp中你不能对它进行改变,总之final的使用,我想你是知道的。
非法实例:
1 | String str = "test"; |
- 使用局部参数代替全局变量,比如说:
1 | public class Utils { |
替换成
1 | public class Utils { |
- 将方法作为参数使用:
1 | public List<Integer> addOne(List<Integer> numbers) { |
转换成
1 | public List<Integer> addOne(List<Integer> numbers) { |