不允许变量声明。但是没有范围重叠

时间:2016-08-04 18:35:27

标签: java scope

当我填充一个字符数组时,我收到错误。

     List<Character> letters = new ArrayList<>();
     int i = 0;
     if (i == 0) {
         Character str = 'a';
         letters.add(str);
     } else if (i == 1)
         Character str = 'b'; //Variable declaration not allowed here
         letters.add(str);
     }

为什么会出现此错误消息?案例i == 0和i == 1是相互的 独家。为什么编译器不允许我第二次判断str?

1 个答案:

答案 0 :(得分:1)

范围不重叠,这是正确的。您忘记了else if行的开头花括号。这只是一个看似

的拼写错误

} else if (i == 1){解决了问题。

您的情况与JAVA Variable declaration not allowed here

明显不同