当前位置: 首页 > 后端技术 > Java

JAVALambda简单例程

时间:2023-04-01 21:19:11 Java

有什么问题或者意见可以在评论区回复。欢迎大家一起讨论学习。Lambda初学者看似很复杂,其实是有套路的。包括后面复杂的Lambda函数接口,其实这就是套路,不用担心按套路编程。你可以看看他们的套路。我也录制了两个视频,大家可以看看https://www.bilibili.com/vide...https://www.bilibili.com/vide...比如Supplier,我们来看看源码first:Let's写的时候可以注意一下几个位置标注的方式1.两个T表示定义的输出参数类型,所以可以在Lambda表达式前面写上Suppliersupplier部分2.括号()部分源码,这部分表示lambda表达式需要接收入参。其实这个Supplier是不需要入参的,后面的部分可以写。这部分先复制括号,写箭头,最后写Supplier提供的操作。Supplier需要返回一个String,直接把返回的String写在箭头右侧即可()->"HelloLambda";写在一起的是Suppliersupplier=()->"HelloSupplier";3、表达式写好后,如何使用?代码里不是写了get方法吗?让我们试试System.out.println(supplier.get());4.输出是什么?我们先看一下源码:我们写的时候可以注意途中标出的几个位置1.两个T表示定义的入参类型,所以可以把Consumer消费者2。源码中的括号(Tt)部分,这部分表示lambda表达式需要接收的输入参数,Consumer需要一个T类型的参数,所以可以写后面的部分,这部分先把括号和中间的部分复制过来content(Tt),我们改成具体的String,写箭头,最后写Consumer处理的操作。Consumer不返回内容,只是把操作(这里写System.out.println)写在箭头右边(Stringt)->System.out.println(t);写在一起就是Consumerconsumer=(Stringt)->System.out.println(t);3、表达式写好后,如何使用?accept方法不是写在代码里了吗?方法中的参数不是(Tt)吗,我们换成String试试consumer.accept("你好消费者!");4.看输出?你好消费者5。不是还有andThen吗?为什么里面的参数还是一个Consumer?然后我会尝试写另一个Consumer?ConsumerconsumerAndThen=(Stringt)->System.out.println("然后"+t);6.如何使用?这不就是Consumer的方法吗?原来cosumer不就是写个“dot”就调用了吗?试试在刚才第一个cosumer后面写一个“点”,他返回的也是一个Cosumer,给他一个cosumerNew试试ConsumerconsumerNew=consumer.andThen(consumerAndThen);7.怎么调用,或者accept试试看输出什么?consumerNew.accept("HelloConsumer!");//输出,按照顺序,如果调整了两个顺序,//打印顺序不一致,先执行andThen,后执行接下来执行HelloConsumer!然后HelloConsumer!