函数式接口

 1 /**
 2  * @author jliu.l
 3  * @2020年7月8日
 4  * 
 5  */
 6 public class Demo01Logger {
 7     public static void showLog(int level,MessageBuilder mb) {
 8         if(level==1) {
 9             System.out.println(mb.builderMessage());
10         }
11     }
12     
13     public static void main(String[] args) {
14         String str1 = "I ";
15         String str2 = "love ";
16         String str3 = "Java";
17         
18         showLog(2,new MessageBuilder() {
19             
20             @Override
21             public String builderMessage() {
22                 System.out.println("开始拼接......");
23                 return str1+str2+str3;
24             }
25         });
26         
27         /*
28          * Lambda 延迟执行
29          * 当level==1条件满足,才会拼接字符串
30          */
31         showLog(2,()->{
32             System.out.println("开始拼接......");
33             return  str1+str2+str3;
34         });
35     }
36 }
 1 /**
 2  * @author jliu.l
 3  * @2020年7月8日
 4  * 
 5  */
 6 
 7 @FunctionalInterface
 8 public interface MessageBuilder {
 9     public abstract String builderMessage();
10 }
原文地址:https://www.cnblogs.com/jliu-l/p/13279990.html