📅  最后修改于: 2023-12-03 15:31:58.112000             🧑  作者: Mango
在Java 8中,添加了函数接口(Functional Interface)的概念,它是一种只有一个抽象方法的接口,可以被Lambda表达式和方法引用所引用。
函数接口有很多种,常用的有Supplier
、Consumer
、Function
、Predicate
等。下面我们就来简单介绍一下这些函数接口及其作用。
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
接口是一个只有输入参数,没有返回值的接口。
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
}
示例:
Consumer<String> printer = message -> System.out.println(message);
print.accept("Hello, World!");
输出结果:
Hello, World!
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
接口是一个只有输入参数,返回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表达式 和 函数接口,可以很好地提高我们的编程效率和代码可读性。