Java中的Lambda详细解读
Posted 武帅祺的官方网站
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的Lambda详细解读相关的知识,希望对你有一定的参考价值。
Lambda是JDK1.8新引进的简化代码语法格式,可以替代匿名内部类。
//以下代码对比一下两者写法上的区别
interface Alarm
void display();
public class Lambda
public static void main(String[] args)
Alarm a=new Alram()
@Override
public void display()
System.out.println("我是匿名内部类实现的方法");
//简化代码
Alram b=()->System.out.println("我是lambda表达式实现的方法");
Lambda语法
接口 变量名=(参数名称以及个数)->实现方法;
函数式接口:
- 保证是接口
- 只能有一个抽象方法(public abstract可缺省)
- 声明@FunctionalInterface注解 帮助开发人员判定是否满足函数式接口定义 可不写但需要你满足上两条
- 函数式接口中可以定义常量(public final可缺省)
- 函数式接口中可以写默认方法 但是Lambda表达式无法访问该方法
//声明该接口为函数式接口
@FunctionalInterface
interface AlarmNoArg
void display();
@FunctionalInterface
interface AlarmOneArg
String display(String one);
@FunctionalInterface
interface AlarmTwoArg
public final int arg=1;
public abstract int display(int a,int b);
interface AlarmThreeArg
defalut void m1()
//逻辑
void display(int[] arr);
public class Example
public static void main(String[] args)
AlarmNoArg a=()->System.out.prinln("一行代码可以省略");
a.display();
AlarmOneArg b=(name)->name;
//一行代码缺省情况下 可以直接返回值
b.display("张三");
//两个参数 参数名随便写 符合java变量名规范就行
//返回值不是void 写结构体必须写return
AlarmTwoArg c=(a,b)->return a+b;;
c.display(1,2);
//数组引用
AlarmThreeArg d=(arr)->
for(int i:arr)
System.out.println(i);
;//分号别忘啦
d.display(new int[]1,2,3,4)
::运算符的使用
保证方法参数数量/顺序/返回值一致 否则编译错误
@FunctionalInterface
interface Lam1
int sum(int a,int b);
interface Lam2
String get();
interface Lam3
Example create(String name,int age);
class Example
public static int isSum(int m,int n)
return m+n;
public String getName()
return "马齐";
public Example1(String name,int age)
this.name=name;
this.age=age;
public Example1()
public static void main(String[] arg)
//绑定静态方法
Lam1 a=Example::isSum;
a.sum(1,2);
//绑定实例方法
Example obj=new Example();
Lam2 b=obj::getName;
b.get();
//绑定构造方法
Lam3 c=Example::new;
Example e=c.create("张三",21);
SpringBoot 详细解读
参考技术A Microservices:https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa给maven的settings.xml配置文件的propiles标签添加:
执行maven打包命令,将程序打包
jar包:只需要运行环境就可以跑起来的程序;
如下图来到jar包目录下 cmd 执行java -jar ***.jar
ctrl+点击
@SpringBootApplication注解内部:
以上是关于Java中的Lambda详细解读的主要内容,如果未能解决你的问题,请参考以下文章