有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在分号后使用{}

在一本关于action bar的书中给出的安卓代码示例中,给出的示例如下:

MenuItem menu1 = menu.add(0, 0, 0, "Item 1");
{
  menu1.setIcon(R.drawable.ic_launcher);
  menu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}

如何在分号后使用大括号?很明显,这里有一些我不理解的概念


共 (3) 个答案

  1. # 1 楼答案

    在这种情况下,它们是完全可选的,没有任何副作用。在您的示例中,它的唯一目的是通过指定属于控件的属性来提高代码的可读性。你最好不用牙套。但是如果您使用工具重新格式化代码,缩进很可能消失了

    但是,如果您有一个方法并将{}放在其中,则可以创建一个新的变量范围:

    void someMethod() {
        {
             int x = 1;
        }
        // no x defined here
        {
             // no x here, so we may define a new one
             string x = "Hello";
        }
    }
    

    您可以在方法中任何可以启动语句(变量声明、方法调用、循环等)的位置启动新范围

    注意:例如,当您有一个if语句时,您还可以使用大括号创建一个新的变量范围

    void someMethod() {
        if (someThing) {
             int x = 1;
        }
        // no x defined here
        if (somethingElse) {
             // no x here, so we may define a new one
             string x = "Hello";
        }
    }
    

    这同样适用于while、for、try、catch等。如果您仔细想想,甚至方法体的大括号也是这样工作的:它们创建了一个新的作用域,它是类作用域之上的一个“层”

  2. # 2 楼答案

    它被称为匿名代码块,它们应该是restrict the variable scope

  3. # 3 楼答案

    这些是初始化块

    我认为这不是初始化块的正确用法。 除了您生成的示例之外,这些块仅用于初始化目的Click Here查看详细视图