首页 技术 正文
技术 2022年11月8日
0 收藏 363 点赞 1,200 浏览 1193 个字

0.预备知识

  函数式接口:只包含一个抽象方法的接口。

  内部类:静态、成员内部类

      局部内部类

      匿名内部类

1.代码

 1 /**
2 * 函数式编程:
3 * lambda表达式前提:
4 * 必须是函数式接口。
5 */
6 //1.定义一个函数接口
7 interface GetFx{
8 void getFx(int x);
9 }
10 //2.0 外部类实现
11 class Fx1 implements GetFx{
12 @Override
13 public void getFx(int x){
14 System.out.println("f(" + x + ")=" + Math.sin(x));
15 }
16 }
17 public class LambdaDemo {
18 //2.1 静态成员内部类实现
19 static class Fx2 implements GetFx{
20 @Override
21 public void getFx(int x) {
22 System.out.println("f(" + x + ")=" + Math.cos(x));
23 }
24 }
25 public static void main(String[] args) {
26 GetFx fx;
27 fx = new Fx2();
28 fx.getFx(1);
29
30 //2.2 局部内部类实现
31 class Fx3 implements GetFx{
32 @Override
33 public void getFx(int x) {
34 System.out.println("f(" + x + ")=" + Math.abs(x));
35 }
36 }
37 fx = new Fx3();
38 fx.getFx(1);
39
40 //2.3 匿名内部类实现
41 fx = new GetFx() {
42 @Override
43 public void getFx(int x) {
44 System.out.println("f(" + x + ")=" + Math.sqrt(x));
45 }
46 };
47 fx.getFx(1);
48
49 //3.0 lambda简化
50 fx = (int a)->{
51 System.out.println("1:"+a);
52 };
53 fx.getFx(1);
54
55 //3.1 简化参数类型(多参数要简化都简化)
56 fx = (a)->{
57 System.out.println("2:"+a);
58 };
59 fx.getFx(1);
60
61 //3.2 简化括号(单参数,多参数必须加括号)
62 fx = a->{
63 System.out.println("3:"+a);
64 };
65 fx.getFx(1);
66
67 //3.3 简化花括号(只适用单行代码)
68 fx = a->System.out.println("4:"+a);
69 fx.getFx(1);
70 }
71 }

以上从    外部类–>静态内部类–>局部内部类–>匿名内部类–>lambda表达式   展示了lambda表达式的简化过程。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731