java8如何写一个函数类

java8如何写一个函数类

作者:William Gu发布时间:2026-02-10阅读时长:0 分钟阅读次数:10

用户关注问题

Q
Java 8 如何创建自定义函数式接口?

我想在 Java 8 中编写一个函数类,是否需要定义自己的函数式接口?如何操作?

A

定义和使用自定义函数式接口

在 Java 8 中,编写函数类通常指的是实现函数式接口。可以通过使用 @FunctionalInterface 注解定义自己的接口,并且接口中只包含一个抽象方法。例如:

@FunctionalInterface
public interface MyFunction {
    int apply(int x);
}

这样你就创建了一个函数式接口,后续可以使用 lambda 表达式或方法引用来实现该接口。

Q
Java 8 函数类中的 lambda 表达式如何使用?

如何在 Java 8 中利用 lambda 表达式来实现函数类,使代码更简洁?

A

通过 lambda 表达式实现函数式接口

Java 8 引入了 lambda 表达式,可以用来简洁地实现函数式接口。例如,假设有一个接口:

@FunctionalInterface
interface MyFunction {
    int apply(int x);
}

你可以用 lambda 表达式实现它:

MyFunction square = x -> x * x;
int result = square.apply(5); // 结果是 25

这样写法简洁明了,极大简化了函数类的编写。

Q
Java 8 中有哪些常用的内置函数式接口?

我想在不用自定义接口的情况下编写函数类,Java 8 提供哪些内置函数式接口可以使用?

A

常用内置函数式接口介绍

Java 8 提供了多个通用的函数式接口,可以直接使用,包括:

  • Function<T, R>:接受一个参数,返回一个结果。
  • Consumer:接受一个参数,没有返回值。
  • Supplier:不接受参数,返回一个结果。
  • Predicate:接受一个参数,返回布尔值。

例如使用 Function 接口:

Function<String, Integer> stringLength = s -> s.length();
int length = stringLength.apply("hello"); // length 为 5

利用这些接口可以方便地写出各种函数类的功能。