分析:
Lambda表达式的目的,打印参数传递的字符串
把参数s,传递给了System.out对象,调用out对象方法println对字符串进行输出
注意:
1.System.out对象是已经存在的
2.println方法也是存在的
所以我们可以使用方法引用来优化Lambda表达式
实现:
@FunctionalInterface public interface Printable { void print(String s); }
public class Demo01Printable { //定义一个方法参数传递Printable接口,对字符串进行打印 public static void printString(Printable p){ p.print("HelloWorld"); } public static void main(String[] args) { //调用printString方法,方法的参数printable是一个函数式接口所以可以传递Lambda printString((s)->{ System.out.println(s); }); printString(System.out::println); } }
通过对象名引用成员方法
代码如下:
@FunctionalInterface public interface Printable { void print(String s); }
public class MethodReObject { public void printUpperCaseString(String str){ System.out.println(str.toUpperCase()); } }
public class demo01ObjectMethodReference {
public static void printString(Printable p){
p.print("Hello");
}
public static void main(String[] args) {
printString((s)->{
MethodReObject methodReObject = new MethodReObject();
methodReObject.printUpperCaseString(s);
});
/*
使用方法引用Lambda
对象是已经存在MethodReferObject
成员方法也是已经存在的printUpperCaseString
所以我们可以以使用引用成员方法
*/
MethodReObject methodReObject = new MethodReObject();
printString(methodReObject::printUpperCaseString);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)