[Quote=引用 14 楼 zhouyuqwert 的回复:]
还有这种
if (true) // 报错
int result = 10;
这个应该也跟重定义无关吧
[/Quote]
11L也说了,int result = 10相当于两条语句,即int result; result = 10,所以相当于
if (true) {int result;}
result = 0; //导致这个地方找不到定义
public class Creator {
public static void main(String[] args) {
for (int i = 0; i < 100; i++)
Creature creature = new Creature();
System.out.println(Creature.numCreated());
}
}
class Creature {
private static long numCreated = 0;
public Creature() {
numCreated++;
}
public static long numCreated() {
return numCreated;
}
}