没有双冒号的Java 8供应商

dea*_*e19 2 java java-8 java-stream

我不能在不使用:: notation的情况下创建供应商.所有教程似乎都在使用::来获取方法.

Function<String, Object> beanFactory = m_context::getBean;
Function<Void, IRCPublic> ircPublicSupplier = a -> (IRCPublic) beanFactory.apply("developerPublicConnection");
ircPublicSupplier.apply(null);
Run Code Online (Sandbox Code Playgroud)

我如何将第2行转换为单行语句来创建供应商,并且只需使用'.get()'.我可以使用'.apply(null)',但这看起来很脏.

谢谢!

dea*_*e19 5

Intellij来救援.我把它定义为很长的路:

Supplier<IRCPublic> ircPublicSupplier = new Supplier<IRCPublic>() {
        @Override
        public IRCPublic get() {
            return (IRCPublic) beanFactory.apply("developerPublicConnection");
        }
    };
Run Code Online (Sandbox Code Playgroud)

Intellij将其缩短为:

Supplier<IRCPublic> ircPublicSupplier = () -> (IRCPublic) beanFactory.apply("developerPublicConnection");
Run Code Online (Sandbox Code Playgroud)