java内置函数式接口
时间: 2023-11-04 07:56:54 浏览: 107
Java内置函数式接口是用来支持函数式编程的接口,它们定义了单个抽象方法,可以被Lambda表达式或方法引用所实现。以下是一些常用的Java内置函数式接口:
1. `Predicate<T>`:接受一个输入参数,返回一个布尔值结果。
2. `Consumer<T>`:接受一个输入参数,并且不返回任何结果。
3. `Function<T, R>`:接受一个输入参数,并且返回一个结果。
4. `Supplier<T>`:不接受任何参数,返回一个结果。
5. `UnaryOperator<T>`:接受一个参数,对其进行操作,并返回结果与输入类型相同的结果。
6. `BinaryOperator<T>`:接受两个相同类型的参数,对其进行操作,并返回与输入类型相同的结果。
这些函数式接口可以在Java中用来简化代码,使得函数式编程更加容易实现。通过Lambda表达式或方法引用,可以直接传递函数作为参数或将其赋值给变量。
相关问题
java中函数式接口都有哪些
Java中函数式接口是指只有一个抽象方法的接口,它们可以用来表示Lambda表达式或方法引用。
Java 8中提供了一些内置的函数式接口,包括:
1. Consumer<T>:接收一个参数,不返回任何结果。
2. Supplier<T>:不接收任何参数,返回一个结果。
3. Function<T, R>:接收一个参数,并返回一个结果。
4. Predicate<T>:接收一个参数,返回一个布尔值。
5. UnaryOperator<T>:接收一个参数,并返回与该参数类型相同的结果。
6. BinaryOperator<T>:接收两个参数,并返回与这两个参数类型相同的结果。
除此之外,还有一些注解用于标记函数式接口,如 @FunctionalInterface 注解,用于标记一个接口是函数式接口,以便编译器进行检查。
java 自定义函数式接口的 使用demo
下面是一个简单的 Java 自定义函数式接口的使用示例:
```java
// 自定义函数式接口
@FunctionalInterface
interface MyFunction {
int calculate(int x, int y);
}
public class Main {
public static void main(String[] args) {
// 使用 lambda 表达式实现接口方法
MyFunction add = (x, y) -> x + y;
MyFunction subtract = (x, y) -> x - y;
// 输出运算结果
System.out.println("3 + 4 = " + add.calculate(3, 4));
System.out.println("5 - 2 = " + subtract.calculate(5, 2));
}
}
```
上述代码中,我们先定义了一个自定义函数式接口 `MyFunction`,它包含一个抽象方法 `calculate`,该方法接受两个 `int` 类型参数并返回一个 `int` 类型值。接着,我们使用 `@FunctionalInterface` 注解标记该接口为函数式接口,确保该接口只包含一个抽象方法。
在 `Main` 类中,我们使用 lambda 表达式分别实现了 `MyFunction` 接口的 `calculate` 方法,实现了加法和减法运算。最后,我们输出了运算结果。
注意,Java 8 中已经提供了许多内置的函数式接口,如 `java.util.function` 包中的 `Consumer`、`Supplier`、`Function`、`Predicate` 等,可以直接使用。自定义函数式接口通常用于特定场景下的函数式编程。
阅读全文