我有一个方法public int bar()
,我已经声明了一个int total
(在方法体的c)。因此,这应该是一个simpel局部变量,事情是,日食抱怨本地方法变量,无法识别
Description Resource Path Location Type
The local variable total may not have been initialized Repository.java /proj_individual/src/repo line 35 Java Problem
普通的例子:
public int foo(){
int total;
for(... : ...){
total += 1; // complains
}
return total;// complains
}
和我的确切代码:
public int getLocatars(){
int total;
for (Map.Entry<Apartment, List<Expense>> entry : dic.entrySet()) {
if(entry.getKey().isDebt()){
total += entry.getKey().getNrProple();
}
}
return total;
}
我不知道是什么我可能做错了,所以任何想法都有帮助,谢谢。
是啊,可悲的是,这是不直观设计。它适用于字段,但不适用于局部变量。 –
谢谢。 >> cna't相信它没有响铃,不知何故,因为肯定java inits到0 .... –
@FabianLange:我不认为这是不直观的。对于局部变量,编译器*知道有效的执行流。它无法知道是否在即时/静态字段的getter之前调用setter。 –