内建函数式接口

jdk1.8中提供了java.util.function包,里面提供了一大堆的接口。主要分为四类:

  • 功能型的函数式接口
  • 供给型的函数式接口
  • 消费型的函数式接口
  • 断言型的函数式接口

功能型接口

你输入一个参数,将参数处理后再进行输出。使用的格式是:Function xx = ... ,使用apply实现。
范例:使用功能型的借口(String.valueof())

public class InternalFuncInterface {
    public static void main(String args[]){
        Function function = String::valueOf;
        System.out.println(function.apply(300).length());
    }
}

实际上,所有的內建函数式接口,都有一些小小的扩充。例如,如果确定参数值就是int类型,那么就可以使用IntFunction的接口来作为方法引用。例如:

public class InternalFuncInterface {
    public static void main(String args[]){
        IntFunction function = String::valueOf;
        System.out.println(function.apply(300).length());
    }
}

消费型接口

只有参数,没有返回值的方法接口。(肉包子打狗)
使用的格式是:Consummer

consumer = ...,使用accept实现。
范例:(System.out.println())

public class InternalFuncInterface {
    public static void main(String args[]){
        Consumer function = System.out::println;
        function.accept("输出为消费型接口");
    }
}

供给型接口

只有不断返回数据,不要求参数输入。
使用方法是:Supplier function =...,通过get实现。
范例:大小写转换

public class InternalFuncInterface {
    public static void main(String args[]){
        Supplier function = "hello"::toUpperCase;
        System.out.println(function.get());
    }
}

断言型接口

返回值为布尔型的函数式接口。
使用方法: Predicate function =...,使用test实现。
范例:

public class InternalFuncInterface {
    public static void main(String args[]){
        Predicate function = "##hello"::startsWith;
        System.out.println(function.test("##"));
    }
}

你可能感兴趣的:(内建函数式接口)