【发布时间】:2016-08-04 18:35:26
【问题描述】:
当我填充一个字符数组时,我得到一个错误。
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之后缺少{。 -
我投票决定将此问题作为题外话结束,因为这是一个简单的印刷错误
-
我投票保留它,因为错误信息类似于stackoverflow.com/questions/31230722/…(尚未关闭),但原因却大不相同。
-
为什么要在每个 if 块中创建“str”变量。创建一次并在每次需要时对其进行初始化。创建新变量需要更多资源。
-
我尽量缩小变量的范围。