lambda表达式实现原理分析
本文将深入了解lambda表达式的实现原理和这样的实现方案的取舍权衡。
Java为什么需要lambda表达式?
能够提升代码简洁性、提高代码可读性。
例如,在平时的开发过程中,把一个列表转换成另一个列表或map等等这样的转换操作是一种常见需求。 在没有lambda之前通常都是这样实现的。
List<Long> idList = Arrays.asList(1L, 2L, 3L); List<Person> personList = new ArrayList<>(); for (long id : idList) { personList.add(getById(id)); }
代码重复多了之后,大家就会对这种常见代码进行抽象,形成一些类库便于复用。 上面的需求可以抽象成:对一个列表中的每个元素调用一个转换函数转换并输出结果列表。
interface Function { <T, R> R fun(T input); } <T, R> List<R> map(List<T> inputList, Function function) { List<R> mappedList = new ArrayList<>(); for (T t : inputList) { mappedList.add(function.fun(t)); } return mappedList; }
有了这个抽象,最开始的代码便可以”简化”成
List<Long> idList = Arrays.asList(1L, 2L, 3L); List<Person> personL
下一篇:
Feign简单配置使用(一步到位)