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

标签 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 是相互的 独家的。为什么编译器不允许我第二次 decare str?

最佳答案

范围不重叠,这是正确的。您忘记了 else if 行中的左大括号。这只是一个拼写错误,看起来像

} else if (i == 1){ 修复了问题。

您的情况与 JAVA Variable declaration not allowed here 明显不同

关于java - 不允许变量声明。但没有范围重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774960/

相关文章:

actionscript-3 - For 循环变量作用域混淆

java - Spring Boot集成测试错误: "Could not resolve placeholder ' wiremock. server.port'”在不需要Wiremock的测试中

java - Android TCP Listener 无法在 3G/4G 上运行?

java - 您如何确保多个线程可以安全地访问类字段?

java - Java 中静态抽象方法的替代方案

java - AES 256(而不是 128)与 BouncyCaSTLe

java - 将 json 解析值与用户输入的值进行匹配

c - #define 在单个主文件中的范围

c++ - 在范围外丢失指针引用

具有继承的 C++ 范围解析用法