Lamda表达式

vampire 2020年09月15日 19次浏览

Lamda表达式(函数式编程)

实现要求

​ SAM(Single Abstract Method)只有一个抽象方法,函数式接口

​ 使用函数式接口注释:@FunctionalInterface注释

表达式格式

  1. 方法没有参数:()-> { };
  2. 方法有参数: (参数、参数)-> {};
  3. 如果只有一行语句 (参数、参数)->语句;

方法引用

  1. 引用静态方法:类名称 :: static方法名称
  2. 引用某个实例对象的方法:实例化对象 :: 普通方法
  3. 引用特定类型的方法:特定类 :: 普通方法
  4. 引用构造方法:类名称 :: new

内建函数式接口

  • 功能性函数式接口

    @FunctionalInterface
    public interface Function<T,R>{
    	public R apply(T t);
    }
    
  • 消费型函数式接口:只进行数据处理,没有返回

    @FunctionalInterface
    public interface Consumer<T>{
    	public void accept(T t);
    }
    
  • 供给型函数式接口

    @FunctionalInterface
    public interface Supplier<T>{
    	public T get();
    }
    
  • 断言型函数式接口

    @FunctionalInterface
    public interface Predicate<T>{
    	public boolean test(T t);
    }