首页IT科技lambda表达式的原理(Lambda表达式)

lambda表达式的原理(Lambda表达式)

时间2025-08-02 10:06:23分类IT科技浏览4705
导读:函数式思想...

函数式思想

尽量忽略面向对象的复杂语法               ,强调做什么                      ,而不是以什么形式去做               。

Lambda表达式

就是函数是思想的体现

案例1

这是一段多线程要执行的内容: public class MyRunnable implements Runnable { @Override public void run() { System.out.println("今天晚上真冷啊"); } }

这是测试类:

public class Demo { public static void main(String[] args) { MyRunnable mr = new MyRunnable(); Thread t = new Thread(mr); t.start(); } }

运行结果:

今天晚上真冷啊

案例2

测试类(匿名内部类方式): public class Demo { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println("今天真饿啊"); } }).start(); } }

运行结果:

今天真饿啊

案例3

测试类(匿名内部类Lambda表达式写法): public class Demo { public static void main(String[] args) { new Thread(()->{ System.out.println("今天要洗澡"); }).start(); } }

运行结果:

今天要洗澡

Lambda表达式三要素

组成Lambda表达式的三要素:形式参数        ,箭头               ,代码块

() 里面没有内容                      ,可以看成方法形式参数为空 -> 指向要做的事情 {} 要执行的代码

格式

格式:(形式参数) -> {代码块}

形式参数:如果有多个形式参数        ,参数之间用逗号隔开;如果没有就空着

使用前提

Lambda表达式的使用前提

有一个接口 接口中有       ,且只有一个抽象方法 必须有上下文环境                      ,才能推导出Lambda表达式对应的接口

Lambda表达式的省略

只有一个形式参数时               ,参数类型可以省略;()也可以省略 参数类型可以省略       ,但多个参数时                      ,不能只省略某一个 如果{}中只有一条不带return的语句时               ,句末的分号和{}都可以省略 如果{}中只有一条带return的语句时,句末的分号和{}都可以省 略                      ,return也可以省略

Lambda表达式和匿名内部类的区别

所需类型不同 匿名内部类:可以是接口                      ,也可以是抽象类,还可以是具体类 Lambda表达式:只能是接口 使用限制不同 如果接口中有且只有一个抽象方法               ,可以使用Lambda表达式                      ,也可以使用匿名内部类 如果接口中多于一个抽象方法        ,只能使用匿名内部类               ,不能使用Lambda表达式 实现原理不同 匿名内部类编译之后                      ,产生一个单独的.class字节码文件 Lambda表达式编译之后        ,没有一个单独的.class字节码文件                      。对应的字节码会在运行的时候动态生成

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
跳出率越高表明该网站对访问者的吸引力越大(如何优化网站跳出率) 网站收录查询的方式有哪些(如何查看网站收录情况?一招搞定!)