高效 告别996,开启java高效编程之门 2-8实战:判断逻辑参数化-Lambda表达式

Posted 扈江离与辟芷兮,纫秋兰以为佩。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高效 告别996,开启java高效编程之门 2-8实战:判断逻辑参数化-Lambda表达式相关的知识,希望对你有一定的参考价值。

0 有用部分

1    函数式编程简介

2    函数式编程和lambda的关系

3    lambda表达式应用范围

4    lambda应用的五个案例

5    函数式编程应用条件

6 提出问题

 

 

0  有用部分

4  lambda应用的五个案例

5  函数式编程应用条件

6  提出问题

本节主要介绍了lambda的使用方式,具体demo参照2-10 和2-15

 

1  函数式编程简介

函数式编程是一种不同的编程思想,定义函数作为公民,可以赋值给变量,作为参数或者返回值来传递

 

2  函数式编程和lambda的关系

为了向scala,haskell语言看齐
lambda是 java引入函数式编程的一种革命性的尝试。


3  lambda表达式应用范围

lambda可以替代面向对象方式下的所有匿名函数,通过行为参数化传递代码


4  lambda应用的四个案例
◆(parameters)->expression
◆(parameters)->{statement;}



4.1  没有参数

()->System.out.println("Hello World!");

 


4.2  只有一个参数

name->System.out.println(
"Hello World from"+name+"!");

 


4.3  没有参数,逻辑复杂

()->{
System.out.println("Hello");
System.out.println("World");
}

 



4.4  包含两个参数的方法

BinaryOperator<Long> functionAdd=(x,y)->x+y;
Long result=functionAdd.apply(1L,2L);

 



4.5   对参数显示声明

BinaryOperator<Long>functionAdd=(Long x,Longy)->x+y;
Long result=functionAdd.apply(1L,2L);
5  函数式编程应用条件

◆接口中只有一个抽象方法(必看)(一个接口中有多个方法的还是不要用了,感觉好不方便啊,如果完全面向函数式编程,需要把接口中的多个方法拆成了很多的小方法,还是两种编程方法结合着用比较好)
◆Java8的函数式接口注解:@FunctionInterface(可加可不加,只是为了校验是否符合lambda规则)
◆函数式接口的抽象方法签名:函数描述符


6  提出问题

一个接口中有多个方法的还是不要用了,感觉好不方便啊,如果完全面向函数式编程,需要把接口中的多个方法拆成了很多的小方法,还是两种编程方法结合着用比较好。

问题:如果原来一个接口A中只有一个抽象方法B,我C,D,E等多个类都用了lambda表达式,以后接口A中加了一个抽象方法F,那么引用A接口的C,D,E类是不是都要同步改造?
针对这种情况,有没有好的解决方法?

 

 

 

以上是关于高效 告别996,开启java高效编程之门 2-8实战:判断逻辑参数化-Lambda表达式的主要内容,如果未能解决你的问题,请参考以下文章

高效 告别996,开启java高效编程之门 4-6本节总结

高效 告别996,开启java高效编程之门 3-26去重

高效 告别996,开启java高效编程之门 3-26去重

高效 告别996,开启java高效编程之门 3-1流式编程开场与案例场景概述

高效 告别996,开启java高效编程之门 3-23汇总操作实战案例

高效 告别996,开启java高效编程之门 3-23汇总操作实战案例