JAVA学习-常用函数式接口

函数式接口指的是有且只有一个抽象方法的接口,在学习 函数式编程和Lambda表达式 中我们经常遇到,但是这些函数式接口都是我们自定义的,其实,在 Java 中,有着自带的函数式接口,以下就是一些常用的函数式接口。

Function 接口

@FunctionalInterface 
public interface Function<T, R>

功能性接口,接受一个 T 类型的参数,将结果以 R 类型的方式输出,函数式方法是apply(T)

public static void main(String[] args) {
    //Function 接口
    Function<Integer, String> function = x -> String.valueOf(x + 114511);
    //调用方法
    String y = function.apply(3);
    //打印
    System.out.println(y);
}

打印结果:

 

Consumer接口

@FunctionalInterface 
public interface Consumer<T>

消费者接口,接受一个 T 类型参数,但是不返回值,常用于输出某些值,函数式方法是 accept(T)

public static void main(String[] args) {
    //Consumer 接口
    Consumer<Integer> consumer = System.out::println;
    //调用方法
    consumer.accept(1919810);
}

执行结果:

Supplier接口 

@FunctionalInterface 
public interfaceSupplier<T>

 生产者接口,不接受任何参数,但是要返回一个 T 类型的值,函数式方法是 get()

public static void main(String[] args) {
    //Supplier 接口
    Supplier<String> supplier = () -> "诶嘿哈哈哈哈哈,Supplier 来咯";
    //调用方法
    System.out.println(supplier.get());
}

打印结果:

 

Predicate 接口

@FunctionalInterface 
public interface Predicate<T>

接受一个 T 类型的参数,返回一个布尔类型的结果,类似于 Function<T, Boolean>,函数式方法是 test(T)

public static void main(String[] args) {
    //Predicate 接口
    Predicate<String> predicate = x -> x.equals("鸡汤来咯");
    //调用方法
    System.out.println(predicate.test("鸡汤来咯"));
    System.out.println(predicate.test("寄汤来咯"));
}

打印结果:

 


版权声明:本文为qq_48772498原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。