第二章 Lambda表达式

首先看下面一段代码:

button.addActionListener(new ActionListener() {

     public void actionPerformed(ActionEvent e){

               System.out.println("button clicked");

      } 

}          

);

这实际上一个代码即数据的例子,我们给按钮传递了一个代表某种行为的对象。

设计匿名内部类的目的,就是方便java程序员将代码作为数据传递。不过匿名内部类还是不够简便,为了调用一行重要的逻辑代码,不得不加上四行冗繁的样板代码。并且这些代码还相当难读,因为它并没有清晰的表达程序员的意图:我们不想传入对象,只想传入行为。在Java8中,上述代码可以写成一个lambda表达式:

button.addActionListener(event->System.out.println("button clicked"));



函数接口

函数接口是只有一个抽象方法的接口用作Lambda表达式的类型。

Java中重要的函数接口:

Predicate<T> , Consumer<T> , Function<T,R> ,Supplier<T> , UnaryOPerator<T> , BinaryOperator<T>

Predicate<T>:

public interface Predicate<T>{

        boolean test(T t);

}

总结:

Lambda 表达式是一个匿名方法,将行为像数据一样传递。

Lambda表达式常见的结构:BinayOPerator<Integer> add = (x,y) -> x+y;

函数接口指仅具有单个抽象方法的接口,用来表示Lambda表达式的类型。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容