优点
Lambda表达式的优点是,只有在使用Lambda表达式的时候,才会编译,否则不会编译
日志文件案例
输入不同的优先级,输出不同的信息
代码
不适用Lambda表达式
public class Logger {
public static void showLog(int level,String message){
if(level==1){
System.out.println(message);
}
}
public static void main(String[] args) {
String msg1 = "Hello";
String msg2 = "World";
String msg3 = "Java";
showLog(1,msg1+msg2+msg3);
}
}
日志
- 在此书写存在着资源的浪费,因为如果等级不是1,那么
- 拼接好的字符串不会输出,但是字符串已经拼接了,造成了
- 资源浪费的现象
MyLogger类
public class MyLogger {
public static void showLog(int level, MyMessage message){
if (level == 1){
System.out.println(message.getMessage());
}
}
public static void main(String[] args) {
String msg1 = "Hello";
String msg2 = "World";
String msg3 = "Java";
showLog(1,()->msg1+msg2+msg3);
}
}
MyMessage接口
@FunctionalInterface
public interface MyMessage {
public abstract String getMessage();
}
- 使用lambda表达式的好处是:只有在日志的等级是一级时,
- 才会调用接口中的方法,才会进行字符串的拼接。
- 如果不是一级,那么不会执行,字符串不会拼接,那么性能不会浪费