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规则)
◆函数式接口的抽象方法签名:函数描述符

使用条件:(课程讲的不是很理解,外网摘抄,下边有时间看)

1.有一个接口且只有一个A方法

2.把该接口对象充当B方法参数,灵活使用A方法

3.调用B方法,使用Lambda表达式实现A方法,充当匿名对象



 

6  提出问题

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

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

 

 

 

posted on 2020-04-04 07:35  菜鸟乙  阅读(262)  评论(0编辑  收藏  举报