Это скомпилирует
class X
{
public static void main(String args[])
{
{
int a = 2;
}
{
int a = 3;
}
}
}
Это не будет
class X
{
public static void main(String args[])
{
int a = 2;
{
int a = 3;
}
}
}
Я ожидал, что и скомпилировать (возможно, так работает C). В чем причина, потому что невозможно объявить переменную в блоке с тем же именем, что и во внешнем блоке?