首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java编码约定--这些花括号是用来做什么的?

问Java编码约定--这些花括号是用来做什么的?
EN

Stack Overflow用户
提问于 2015-06-24 02:10:30
回答 1查看 290关注 0票数 0

我是JAVA新手,我遇到了下面的代码片段。

我的问题是关于围绕2个setter调用的花括号。

我在编码约定http://www.oracle.com/technetwork/java/codeconventions-150003.pdf中找不到任何解释这个代码片段的东西。

除了限定setter调用的作用域(但我不明白需要这样做),我想不出花括号有什么原因,有人能解释一下花括号的用途吗?(很抱歉,我在寻找之前的问题时没有任何运气)

代码语言:javascript
复制
Foobar foobar = FoobarManager.getFoobar();
{
    foobar.setName("MyFoo");
    foobar.setTimestamp(timestamp);
}
EN

回答 1

Stack Overflow用户

发布于 2015-06-24 02:19:55

这是一个java初始化器代码块,它将在构造函数的超级调用之后工作,您可以执行下一段代码。

代码语言:javascript
复制
public class Test {
    public Test() {
        super();
        System.out.println("Hello");
    }

    {
        System.out.println("Bye");
    }

    public static void main(String[] args) {
        new Test();
    }
}

如果检查输出,结果是:

代码语言:javascript
复制
Bye
Hello

这是因为fist将执行超级调用,之后将执行初始化程序块,然后是构造函数的下几行。

如果您有许多构造函数,并且希望独立于所执行的构造函数来执行某些代码行,那么它将非常有用。

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

https://stackoverflow.com/questions/31010329

复制
相关文章

相似问题

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