java - 在 Java 中使用函数式接口(interface)的真实示例

标签 java java-8 functional-interface

<分区>

我知道函数式接口(interface)意味着你可以拥有/只有 1 个抽象方法和 1 个以上的默认方法,但我想知道如何将它与使用函数式接口(interface)的真实示例/情况联系起来Java.

你能给出一个有效的情况/例子吗?

提前致谢!

最佳答案

首先注解@FunctionalInterface被Java内置的函数式接口(interface)Predicate,Function,Consumer使用> 等...

另一方面,您可能想像下面这样创建自定义的:

@FunctionalInterface
public interface ThrowingConsumer<T> {
    void accept(T t) throws CustomException;
}

然后你就可以把它当作方法参数了:

public <T, R> void doSomething(T value, ThrowingConsumer<T, R> consumer) {
    // ...
}

然后这样调用它:

doSomething(someValue, this::customConsumerMethodThrowingAnException);

值得一提的是,@FunctionalInterface 不是必需的。编译器可以完美处理任何满足 the requirements 的接口(interface).

编译器对待它的方式类似于处理@Override注解。即使没有它,代码也能编译。但是一旦添加,对于将来维护代码的人来说,它会使代码更清晰、更安全。

关于java - 在 Java 中使用函数式接口(interface)的真实示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004144/

相关文章:

java - iText如何从可填充模板创建多页文档

java 内存设置 amazon m3.xlarge

java - 尝试模仿java函数式接口(interface)

java - 如何将 List<XObject> 转换为 List<XObjectWrapper>?

kotlin - 如何在 Kotlin 中将功能接口(interface)实现为 lambda?

Java 方法不能与 Lambda 表达式一起应用

java - 找不到方法 getInfo()?

java - Eclipse 平台是独立的吗?

java - 流式传输 map 列表并收集特定 key

java - PermGen 和 Metaspace 有什么区别?