<分区>
我知道函数式接口(interface)意味着你可以拥有/只有 1 个抽象方法和 1 个以上的默认方法,但我想知道如何将它与使用函数式接口(interface)的真实示例/情况联系起来Java.
你能给出一个有效的情况/例子吗?
提前致谢!
<分区>
我知道函数式接口(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/