JDK8的新特性之一Lambda能将函数作为方法里面的参数使用。
/** * JDK8新特性Lambda */ public class Test { public static void main(String[] args) { new Thread(new Runnable() { //使用每个匿名内部类的时候,有部分代码是必须公用的,所有有省略的空间 @Override public void run() { } }); new Thread(()->{ //由匿名内部类简化成Lambda System.out.println("HelloWorld"); }).start(); } }
外部类——>静态内部类——>局部内部类——>匿名内部类——>Lambda
/** * JDK8新特性Lambda */ public class Test { public static void main(String[] args) { ILove love = (() -> { //由new Runnable得到启发,当创建一个匿名内部类(接口)的时候都可以使用Lambda System.out.println("HelloWorld"); }); love.output(); } } interface ILove{ public void output(); }
Lambda的局限性:仅合适只有一个方法的接口(简单接口,Runnable接口里面就只有一个方法run())。