Java中未指定的块是否有实际用途?

Pur*_*ret 0 java block

可能重复:
Java中的匿名代码块

我前几天(在SO上)了解到这一点

public method() {
    someCode()
    {
        Object value = localCode();
        doSomethingWith(value);
    }
    moreCode();
}
Run Code Online (Sandbox Code Playgroud)

是有效的Java,它使包含value该区域的本地块,因此value只存在于该块中.

这有什么实际用途吗?如果没有,为什么Java没有给出这个(愚蠢)使用的警告{}

Pet*_*rey 10

我在测试中使用它,我想重复不同的场景.

{
    long start = System.nanoTime();
    // do something
    long time = System.nanoTime() - start;
    // print result.
}
{
    long start = System.nanoTime();
    // do something else
    long time = System.nanoTime() - start;
    // print result.
}
{
    long start = System.nanoTime();
    // do something else again.
    long time = System.nanoTime() - start;
    // print result.
}
Run Code Online (Sandbox Code Playgroud)

这允许复制代码而不必更改名称,或冒险重复使用变量.