java8 Lambda表达式整理

Lambda表达式

lambda是将一个函数做为一个参数进行传递。java

语法

(parameters) -> expressionexpress

(parameters) ->{ statements; }app

前面是参数,后面是方法的执行体,只有一行代码能够省略花括号,只有一个参数也能够省略参数的括号。函数

使用范围spa

只有一个抽象方法的接口中的方法均可以使用lambda表达式进行编写code

java8提供的接口对象

java8内置提供了4个用于lambda的接口接口

  • predicate接口get

    • 断言接口,接受一个参数返回一个boolean类型的值,用于判断的时候使用,好比compareio

    • boolean test(T t);
  • consumer接口

    • 消费者接口,接受一个参数不返回值,对参数进行处理,打印之类的操做

    • void accept(T t);
  • function<T,R>接口

    • 方法处理接口,接受一个任意类型的参数,返回自定义类型的参数

    • R apply(T t);
  • supplier接口

    • 生产者接口,不接受参数,返回任意类型的值

    • T get();

方法引用

  • 构造方法的引用:HashMap::new==()->new String()

  • 特定对象的方法引用x::toString==()->x.toString()

    • public void example() {
          String x = "hello";
          function(x::toString);
      }
  • 任意对象的实例方法引用

    • String::toString==(s) -> s.toString()
  • 静态方法引用

    • String::valueOf==`(s) -> String.valueOf(s)
相关文章
相关标签/搜索