码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-04-04 09:13:41      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:比较   ESS   表达式   部分   有用   view   函数式编程   apply   返回值   

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表达式

标签:比较   ESS   表达式   部分   有用   view   函数式编程   apply   返回值   

原文地址:https://www.cnblogs.com/1446358788-qq/p/12630231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!