1 public class lambdaDemo { 2 /* 3 * 这个方法主要是用来延迟创建实例的 4 * 1. 采用接口,在接口中定义唯一的方法 5 * 2. 在main方法中用匿名内部类的方式调用 6 * 3. 记住在logMsg 中调用方法的时候还是要initInter.initMsg()调用 7 * 这样才有返回值 8 * 9 * */ 10 public static void logMsg(int i,initInter initInter){ 11 if (i==1){ 12 System.out.println(initInter.initMsg() +"运行正常"); 13 }else if (i==2){ 14 System.out.println(initInter.initMsg() +"2级错误"); 15 } else if (i==3){ 16 System.out.println(initInter.initMsg() +"3级错误"); 17 } 18 } 19 public static void main(String[] args) { 20 String name = lambdaDemo.class.getName(); 21 logMsg(1, new initInter() { 22 @Override 23 public String initMsg() { 24 return "main"+"-"+name +"test"; 25 } 26 }); 27 } 28 }
在接口的实现中,可以用注解的方式来约束
接口中只有一个方法
1 // 用来约束只有一个实现的方法 2 @FunctionalInterface 3 public interface initInter { 4 String initMsg(); 5 }