zoukankan      html  css  js  c++  java
  • JAVA 8 主要新特性 ----------------(四)Lambda函数式接口

    一、什么是函数式接口

          只包含一个抽象方法的接口,称为函数式接口。  你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。

             可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。

    简而言之,就是一个接口中有且仅有一个抽象方法,称之为函数式接口.(1.8存在默认接口和方法.)

    举例:

             Runable接口

    二、自定义函数式接口

    1、自定义函数式接口

     1 @FunctionalInterface
     2 public interface LambdaDemo {
     3 
     4     /**
     5      * 有且仅有一个方法
     6      * @param x
     7      * @param y
     8      * @return
     9      */
    10     Integer count(int x,int y);
    11 }
    View Code

    2、自定义泛型函数式接口

    1 @FunctionalInterface
    2 public interface MyFunction<T> {
    3 
    4 
    5     T getValue(T t);
    6 }
    View Code

    三、作为参数传递 Lambda 表达式

    1 @Override
    2     public String getValue(MyFunction<String> string, String t2) {
    3         return t1.getValue(string,t2);
    4     }
    View Code

    作为表达式

    1 List<Employee> myEmployeeList = acutalEmployee(employeeList, employee -> employee.getSalary() >= 10000);
    View Code

    四、Java 内置四大核心函数式接口

    函数式接口   参数类型   返回类型  用途 

    Consumer<T> 消费型接口


    void  对类型为T的对象应用操 作,包含方法: void accept(T t)

    Supplier<T> 供给型接口

    返回类型为T的对象,包 含方法:T get();

    Function<T, R> 函数型接口

    R

    对类型为T的对象应用操 作,并返回结果。结果 是R类型的对象。包含方 法:R apply(T t);

    Predicate<T> 断定型接口

    boolean 确定类型为T的对象是否 满足某约束,并返回 boolean 值。包含方法 boolean test(T t);

           

  • 相关阅读:
    java并发ThreadLocal
    PermGen space 与 Java heap space
    java vm内存设置
    linux下ssh使用和配置
    ubuntu进入命令登录界面
    7-21 求前缀表达式的值
    7-20 表达式转换
    7-19 求链式线性表的倒数第K项
    7-18 银行业务队列简单模拟
    7-17 汉诺塔的非递归实现
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/10058635.html
Copyright © 2011-2022 走看看