有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。
public class Demo02 {
public static void main(String[] args) {
String str1 = "a";
String str2 = "b";
String str3 = "c";
log(2,str1+str2+str3);
}
public static void log(int num,String message){
if (num==1){//如果日志等级为1,则输出日志信息
System.out.println(message);
}
}
}
而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能。
Lambda表达式使用前提:存在函数式接口
定义一个接口传递盛放拼接好的字符串
@FunctionalInterface
public interface StringB {
public abstract String stringBulid();
}
主程序调用的方法中使用Lambda表达式
public class Demo02 {
public static void main(String[] args) {
String str1 = "a";
String str2 = "b";
String str3 = "c";
//调用log()方法,StringB为一个函数式接口,所以可以使用Lambda表达式
//log(2,()->{return str1+str2+str3;});
// 有且只有一行,{}可以省略,{}如果省略return和末尾;也去掉
log(2,()->str1+str2+str3);
}
public static void log(int num,StringB message){
if (num==1){//如果日志等级为1,则输出日志信息
System.out.println( message.stringBulid());
}
}
}