这是什么java8语法,我在哪里可以阅读更多?

时间:2017-05-06 04:58:26

标签: lambda java-8

如何在一个区块中放置多个方法调用(例如,在下面的情况下得到'?)

Icy-MetaData: 1

我正在阅读关于lambdas的文章,文档谈论单个方法接口。 当我学习一个名为jooby

的网络框架时,我正在学习lambdas

2 个答案:

答案 0 :(得分:4)

这称为initializer block,执行两种方法get

get种方法看起来像是StringBiConsumer作为输入。除此之外不完全确定其他语法混淆了你。

答案 1 :(得分:0)

这个结构与lambdas无关;我相信自Java 6以来一直存在。语法称为initialization blockinstance initializer{ }之间的代码被Java编译器复制到类中的每个构造函数。创建类的实例时也会调用该块。您可以将此视为“init”方法的更好替代方法,该方法必须由每个构造函数调用。

请注意,您的User类正在扩展一个基类,其中get方法显然是*定义的。你也可以写

{

    this.get("/users", (req, resp) -> {
        resp.send("Uses index");
    });

}

或者

import org.jooby.Jooby;

public class UserRoutes {    

    {
        Jooby jooby = new Jooby();

        jooby.get("/users", (req, resp) -> {
                resp.send("Uses index");
            });
    }
}

*通常你会扩展org.jooby.Jooby