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 }