其他
【只有光头才能变强,文末有xx】分享一波Lambda表达式
戳蓝字“CSDN云计算”关注我们哦!
只有光头才能变强。
一、Lambda用法
public static void main(String[] args) {
// 用匿名内部类的方式来创建线程
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("公众号:Java3y---关注我!");
}
});
// 使用Lambda来创建线程
new Thread(() -> System.out.println("公众号:Java3y---关注我!"));
}
使用Lambda表达式,实际就是创建出该接口的实例对象。
1.1 函数式编程接口
表格中的一元接口表示只有一个入参,二元接口表示有两个入参 以BiFunction为例 常用的函数式接口
// Consumer 一个入参,无返回值
Consumer<String> consumer = s-> System.out.println(s);
consumer.accept("Java3y");
// Supplier 无入参,有返回值
Supplier<String> supplier = () -> "Java4y";
String s = supplier.get();
System.out.println(s);
//.....
Lambda返回的是接口的实例对象 有没有参数、参数有多少个、需不需要有返回值、返回值的类型是什么---->选择自己合适的函数式接口
1.2 方法引用
// 方法引用写法
Consumer<String> consumer = System.out::println;
consumer.accept("Java3y");
如果按正常Lambda的写法可能是这样的:// 普通的Lambda写法
Consumer<String> consumer = s -> System.out.println(s);
consumer.accept("Java3y");
静态方法的方法引用 非静态方法的方法引用 构造函数的方法引用
public class Demo {
public static void main(String[] args) {
// 静态方法引用--通过类名调用
Consumer<String> consumerStatic = Java3y::MyNameStatic;
consumerStatic.accept("3y---static");
//实例方法引用--通过实例调用
Java3y java3y = new Java3y();
Consumer<String> consumer = java3y::myName;
consumer.accept("3y---instance");
// 构造方法方法引用--无参数
Supplier<Java3y> supplier = Java3y::new;
System.out.println(supplier.get());
}
}
class Java3y {
// 静态方法
public static void MyNameStatic(String name) {
System.out.println(name);
}
// 实例方法
public void myName(String name) {
System.out.println(name);
}
// 无参构造方法
public Java3y() {
}
}
最后
// Supplier是一个无入参带返回的值的函数式编程接口
// () -> new Java3y()这整句Lambda表达式,返回的是Supplier接口的实例。从Lambda表达式可以看出无参数,带返回值
Supplier<Java3y> supplier = () -> new Java3y();
// 由于这个“() -> new Java3y()”Lambda表达式可以通过调用一个方法就实现了,那么我们可以优化成方法引用
Supplier<Java3y> supplier2 = Java3y::new;
【叮叮当叮叮当🔔🔔🔔 送书时间到】
今天送👇这本《微服务架构设计模式》
世界十大软件架构师之一、Java开发者社区的意见领袖、微服务架构先驱Chris Richardson亲笔撰写,微服务实用落地指南。
涵盖44个架构设计模式,系统解决服务拆分、事务管理、查询和跨服务通信等难题。易宝支付CTO陈斌、PolarisTech 联合创始人蔡书、才云科技CEO张鑫等多位专家鼎力推荐。
作者:[美]克里斯·理查森(Chris Richardson)
译者:喻勇
【老规矩,获赞最多得】在本文留言并分享至朋友圈即可。
小伙伴们,你们真的好冷漠,仿佛阿秃我不曾让你们开心过一样!
艾瑞巴蒂ball ball u ,让我看到你们的热情~!
本次活动明日上午9点半over 么哇
But,未获奖的读者也可以长按识别二维码购买。
推荐阅读:
【角度刁钻】如果把线程当作一个人来对待,秒懂 华为表示年内没有推出搭载鸿蒙操作系统手机的计划;OpenStack或被抛弃?iPhone至少还要三年可苹果自研5G调制解调器…… 多模态人物识别技术及其在视频场景中的应用 | CSDN技术公开课
Python可视化解析MCMC 40 岁编程经验 30 年!支付宝资深工程师的程序人生
你是程序员小白 Or 大神?一图见分晓! 5个理由告诉你, 区块链未必适合你的业务!