首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是什么java8语法,我在哪里可以读到更多?

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

Stack Overflow用户
提问于 2017-05-06 04:58:25
回答 2查看 92关注 0票数 2

如何将多个方法调用(例如,下面的情况下的“get”)放入块中?

代码语言:javascript
复制
package Routes;

import org.jooby.mvc.Path;

public class UserRoutes extends BaseRoutes {

  {

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

    get("/user/:id", (req, resp) -> {
        resp.send("Single user page");
    });
  }

}

我正在阅读有关lambdas的文章,文档中提到了一个方法接口。当我学习一个名为朱比的web框架时,我正在学习lambda。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-06 05:29:38

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

这个get方法看起来像以一个String和一个BiConsumer作为输入。除此之外,不完全确定是什么其他语法混淆了你。

票数 4
EN

Stack Overflow用户

发布于 2017-06-01 14:36:15

这个构造与lambda无关;我相信从Java 6开始就已经存在了。语法称为初始化块实例初始化器。在{ }之间的代码由Java编译器复制到类中的每个构造函数。在创建类的实例时也会调用该块。您可以认为这是每个构造函数都必须调用的"init“方法的更好的替代方案。

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

代码语言:javascript
复制
{

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

}

代码语言:javascript
复制
import org.jooby.Jooby;

public class UserRoutes {    

    {
        Jooby jooby = new Jooby();

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43816884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档