理解Function Interface(函数式接口) 是学习Java8 lambda表达式的关键所在。
函数式接口的定义:
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface Runnable{ public abstract void run(); }
对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
代码推导lambda表达式:
1 package Thread; 2 /* 3 * 从1到5一步步简化 4 * 5 * */ 6 public class LambdaTest { 7 8 //3 静态内部类 9 static class Like2 implements ILike{ 10 @Override 11 public void lambda() { 12 System.out.println("I like lambda2"); 13 } 14 } 15 16 public static void main(String[] args) { 17 ILike like=new Like(); 18 like.lambda(); 19 20 like=new Like2(); 21 like.lambda(); 22 23 //4局部内部类 24 class Like3 implements ILike{ 25 26 @Override 27 public void lambda() { 28 System.out.println("I like lambda3"); 29 } 30 } 31 like=new Like3(); 32 like.lambda(); 33 34 //5 匿名内部类,没有类的名称,必须借助接口或父类 35 like=new ILike() { 36 @Override 37 public void lambda() { 38 System.out.println("I like lambda4"); 39 } 40 }; 41 like.lambda(); 42 43 //6 用lambda简化 44 like=()->{ 45 System.out.println("I like lambda5"); 46 }; 47 like.lambda(); 48 49 } 50 } 51 52 //1,定义一个函数式接口 53 interface ILike{ 54 void lambda(); 55 } 56 //2 实现类 57 class Like implements ILike{ 58 @Override 59 public void lambda() { 60 System.out.println("I like lambda"); 61 } 62 }
原文:https://www.cnblogs.com/dragon-lan/p/14071584.html