JAVA8新特性之Lambda表达式
Lambda表达式是JAVA8新特性之一,使我们的代码更加的简洁高效,它可以作为参数传递给方法,或存储在变量中,减少了匿名内部类繁琐的创建,它可以作为函数式接口的实例,为函数式接口的抽象方法提供实现,接下来就让我们详细的介绍Lambda表达式。
1.Lambda表达式用在哪里?
上面我们也说了,是作为函数式接口的实例,那什么是函数式接口呢?
只定义了一个抽象方法的接口,就是函数式接口。
2.Lambda表达式的结构
(parameters) -> expression 或 (parameters) -> {statements;}
3.下面用代码来说明
public class LambdaController { public static void main(String[] args) { TestInterface testInterface = str->System.out.println(str); testInterface.sayMessage("woshishui"); TestInterface2 testInterface2 = (a,b)-> a+b; System.out.println(testInterface2.add(1,2)); } interface TestInterface{ void sayMessage(String message); } interface TestInterface2{ int add(int a,int b); } }
4.上面的代码不足以说明,我们举点常用的
Runnabel对象就是一个函数式接口,我们平常创建一个线程是怎么样的呢,先申明一个类实现Runnable对象,然后创建这个对象的实例 作为参数传到new Thread()中,还是像下面这样,使用匿名内部类
public class RunableTest { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println(""); } }).start(); } }
还是像这样使用Lambda表达式
public class RunableTest { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println(""); } }).start(); //使用Lambda表达式 new Thread(()-> System.out.println("")).start(); } }