java中Lamda表达式讲解
程序员文章站
2022-06-25 11:14:25
lamda表达式 1、λ 希腊字母表中排序第十一位的字母,英语名称为 lamda 2、避免匿名内部类定义过多 3、可以让你的代码看起来很简洁 4、去掉了一堆没有意义的代码,留下...
lamda表达式
- 1、λ 希腊字母表中排序第十一位的字母,英语名称为 lamda
- 2、避免匿名内部类定义过多
- 3、可以让你的代码看起来很简洁
- 4、去掉了一堆没有意义的代码,留下核心的逻辑
- 5、其实质属于函数式编程的概念
(params)-> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}
a -> system.out.println("i like lamda-->"+a)
new thread (()->system.out.println(“多线程学习。。。。”)
).start();
怎么理解
- 1、理解functional interface(函数式接口)是学习java8 lamda表达式的关键所在。
- 2、函数式接口的定义:
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface runnable{ public abstract void run(); }
对于函数式接口,我们可以通过lamda表达式来创建该接口的对象
代码推导λ表达式
package com.haiyang.lamda; public class testlamda01 { //3、静态内部类,同样实现ilike接口 static class like2 implements ilike{ @override public void lamda() { system.out.println("i like lamda2"); } } public static void main(string[] args) { ilike like = new like(); like.lamda(); like = new like2(); like.lamda(); //4、局部内部类 class like3 implements ilike{ @override public void lamda() { system.out.println("i like lamda3"); } } like = new like3(); like.lamda(); //5、匿名内部类,没有类的名称。必须借助接口或者父类 like = new ilike() { @override public void lamda() { system.out.println("i like lamda4"); } }; like.lamda(); //6、lamda表达式 like = ()->{ system.out.println("i like lamda5"); }; like.lamda(); } } //1、定义一个只有一个抽象方法的接口 interface ilike{ abstract void lamda(); } //2、实现类 class like implements ilike{ @override public void lamda() { system.out.println("i like lamda1"); } }
输出:
带一个参数的lamda简化
package com.haiyang.lamda; public class testlamda02 { public static void main(string[] args) { ilive live = null; //lamda简化 live = (int a)->{ system.out.println("i live you"+a); }; live.live(1); //lamda简化参数类型 live = (a)->{ system.out.println("i live you"+a); }; live.live(2); //lamda简化括号 live = a->{ system.out.println("i live you"+a); }; live.live(3); //lamda简化花括号(只有一条语句时) live = a->system.out.println("i live you"+a); live.live(4); } } interface ilive{ abstract void live(int a); }
输出:
带多个参数的lamda简化
package com.haiyang.lamda; public class testlamda02 { public static void main(string[] args) { ilive live = null; //lamda简化 live = (int a,int b)->{ system.out.println("i live you"+a+b); }; live.live(1,1); //lamda简化参数类型(要去掉就要都去掉) live = (a,b)->{ system.out.println("i live you"+a+b); }; live.live(2,2); //lamda简化花括号(只有一个语句时) live = (a,b)->system.out.println("i live you"+a+b); live.live(3,3); } } interface ilive{ abstract void live(int a,int b); }
输出:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: C++运算符重载图文详解
下一篇: MySQL DEFINER具体使用详解