java中lambda表达式的分析与具体用法

网友投稿 265 2022-10-29


java中lambda表达式的分析与具体用法

Lamda表达式

希腊字母表中排序第十一位字母,英语名称为Lambda

避免匿名内部类定义过多

其实质属于函数式 编程的概念

(params)->expression[表达式]

(params)->statement[语句]

(params)->{statements}

(a-> System.out.print(“i like lambda–>”+a));

new Thread (()->System.out.println(“多线程学习。。。。”)).start();

为什么要使用lambda表达式

避免匿名内部类定义过多

可以让你的代码看起来很简洁

去掉了一堆没有意义的代码,只留下核心的逻辑。

也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为我们还没有习惯,用的多了,看习惯了就好了。

本章重点

理解Functionl Interface(函数式接口)是学习java8 lambda表达式的关键所在

函数接口的定义

任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口

对于函数式接口,我们可以通过lambda式来创建该接口的对象。

实例代码

静态内部类,局部内部类,匿名内部类与lambda表达式

public class TestLambda1 {

//静态内部类

static class like2 implements ilike{

@Override

public void lambda() {

System.out.println("i like lambda2");

}

}

public static void main(String[] args) {

ilike i=new like();

i.lambda();

i=new like2();

i.lambda();

//局部内部类

class like3 implements ilike{

@Override

public void lambda() {

System.out.println("i like lambda3");

}

}

i=new like3();

i.lambda();

//匿名内部类,没有类的名称,必须借助接口或者夫类

i=new ilike() {

@Override

public void lambda() {

System.out.println("i like lambda4");

}

};

i.lambda();

//用lambda简化

i =()-> {

System.out.println("i like lambda5");

};

i.lambda();

}

}

//定义一个函数式接口

interface ilike{

void lambda();

}

//实现接口

class like implements ilike{

@Override

public void lambda() {

System.out.println("i like lambda");

}

}

lambda表达式:

public class TestLambda2 {

public static void main(String[] args) {

Ilove love=null;

//2.lamda表示简化

// Ilove love=(int a)->{

// System.outhttp://.println("i love you-->"+a);

//

// };

// //简化1.去掉参数类型

// love =(a)->{

// System.out.println("i love you-->"+a);

//

// };

//简化2 简化括号

love =a->{

System.out.println("i love you-->"+a);

};

//简化3 去掉花括号

love =a-> System.out.println("i love -->"+a);

//总结

//lambda表达式只能有一行代码的情况下才能简化成为一行,如果又多行就携程代码块

//前提是接口为函数式(接口中只有一个方法位函数方法)

//多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号

love.love(2);

}

}

interface Ilove{

void love(int a);

}

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:截获消息
下一篇:Inter地址及地址解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~