为什么大括号没有在Java中定义单独的局部作用域?我期待这是主要大括号语言(C,C++,Java,C#)的共同特征.
class LocalScopeTester
{
public static void main(String... args)
{
Dog mine = new Dog("fido");
if (mine.getName().equals("ace"))
{
Dog mine = new Dog("spot"); // error: duplicate local
}
else
{
Dog mine = new Dog("barkley"); // error: duplicate local
{
Dog mine = new Dog("boy"); // error: duplicate local
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我能够使用Java语言做一些实验,令人惊讶的是我开始使用这行代码{{ }}.更多我已经注意到使用该代码结构,我可以使用该类的任何方法而无需为其创建对象变量.
例如:
class Sample {
public void hello() {
// Do something here.
}
}
class SampleTest {
public void testHello() {
new Sample {{ hello(); }};
}
// PSVM ...
}Run Code Online (Sandbox Code Playgroud)
问题是第8行的陈述所要求的概念/术语是什么?