java - Java 8 中函数式接口(interface)的使用

标签 java lambda closures java-8

这是来自 :: (double colon) operator in Java 8 的后续问题其中 Java 允许您使用 :: 运算符引用方法。

是否可以提供一些我创建的自定义功能接口(interface)并将其与 :: 运算符一起使用?以及如何去做?

最佳答案

“是否可以提供一些我创建的自定义功能接口(interface)并将其与 :: 运算符一起使用?以及如何去做?”

这是可能的,而且就像您想象的那样简单:只需使用一种方法创建一个接口(interface)。您甚至不需要 @FunctionalInterface 注释;此注释仅记录您的意图,并有助于在编译时检测错误,类似于 @Override

所以也许您已经在 J​​ava 8 之前的项目中创建了这样的接口(interface)......

class Foo {
    // nothing new:
    public interface FooFactory {
        Foo createFoo();
    }
    // new in Java 8:
    public static final FooFactory DEFAULT_FACTORY = Foo::new;
}

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

相关文章:

java - 使用 Springfox 记录 Spring 应用程序中的 jax-rs 服务

java - 信息 : No Spring WebApplicationInitializer types detected on classpath (jre 1. 8)

java - lambda 复制具有不同键类型的映射

python - 由于使用 "lambda",无法加载保存的 Keras 模型

python - 关于 python 闭包

javascript - react js : Why I'm unable to create closure?

java - 抛出异常时会发生什么?

c++ - 调用时为 std::function 分配新值

rust - 将闭包传递给需要 std::ops::Fn 的函数

java - Android 始终运行 Activity