📜  Java中的函数接口与示例(1)

📅  最后修改于: 2023-12-03 15:31:58.112000             🧑  作者: Mango

Java中的函数接口

在Java 8中,添加了函数接口(Functional Interface)的概念,它是一种只有一个抽象方法的接口,可以被Lambda表达式和方法引用所引用。

函数接口有很多种,常用的有SupplierConsumerFunctionPredicate等。下面我们就来简单介绍一下这些函数接口及其作用。

Supplier

Supplier接口是一个没有参数,返回一个对象的接口。可以用get()方法获取该对象。

@FunctionalInterface
public interface Supplier<T> {
    T get();
}

示例:

Supplier<String> helloSupplier = () -> "Hello, World!";
String hello = helloSupplier.get();
System.out.println(hello);

输出结果:

Hello, World!
Consumer

Consumer接口是一个只有输入参数,没有返回值的接口。

@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

示例:

Consumer<String> printer = message -> System.out.println(message);
print.accept("Hello, World!");

输出结果:

Hello, World!
Function

Function接口是一个有一个输入参数和一个返回值的接口。

@FunctionalInterface
public interface Function<T, R> {
    R apply(T t);
}

示例:

Function<Integer, Integer> doubler = x -> x * 2;
int result = doubler.apply(2);
System.out.println(result);

输出结果:

4
Predicate

Predicate接口是一个只有输入参数,返回boolean值的接口。

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

示例:

Predicate<Integer> isPositive = x -> x > 0;
boolean result = isPositive.test(1);
System.out.println(result);

输出结果:

true
总结

以上是Java中常用的函数接口,其它还有很多函数接口,但有时候我们可以通过这四个接口就可以解决问题。使用Java 8中的 Lambda表达式 和 函数接口,可以很好地提高我们的编程效率和代码可读性。