延迟方法的调用---日志错误等级的输出(Supplier)

 1 public class lambdaDemo {
 2     /*
 3     * 这个方法主要是用来延迟创建实例的
 4     * 1. 采用接口,在接口中定义唯一的方法
 5     * 2. 在main方法中用匿名内部类的方式调用
 6     * 3. 这个中用到的是java中本来就有的泛型Supplier 中的.get()方法
 7     *
 8     * */
 9     public static void logMsg(int i, Supplier<String> initInter){
10         if (i==1){
11             System.out.println(initInter.get() +"运行正常");
12         }else if (i==2){
13             System.out.println(initInter.get() +"2级错误");
14         } else if (i==3){
15             System.out.println(initInter.get()+"3级错误");
16         }
17     }
18     public static void main(String[] args) {
19         String name = lambdaDemo.class.getName();
20         // 相比于匿名内部类的用法,lambda表达式中,没有接口中方法的实现名称,也没有接口的名称,接口名称省略,但是
21         // 如果有参数,参数直接写在括号中
22         logMsg(1, ()-> {
23             {
24                 return "main"+"-"+name +"test";
25             }
26         });
27     }
28 }
原文地址:https://www.cnblogs.com/GooKiki/p/11426574.html