在开发过程中,我不想在声明布尔值时初始化它,因为我需要确保以后正确设置它的值,因此我不希望它有默认值。
代码如下所示:
Boolean newOffer;
//section A
try {
//section A.2
newOffer = name.getText().equalsIgnoreCase("something");
} catch (Exception e){
System.err.println(e);
}
//section B
try {
newOffer = someTestThatReturnsABool();
System.out.println("ok");
} catch (Exception e) {
//section B.2
System.out.println("not ok");
e.printStackTrace();
}
if (newOffer) {
doSomething();
}
在评论中 section A
- newOffer
不包括在活动变量列表中( Window → Show view → Variables
). 我想这很好,因为它没有初始化(但仍然应该列为void、null或类似的东西)。
如果水流通过 section A.2
- newOffer
初始化,它出现在变量列表中,我认为这是预期的。然而,一旦我走出这一步 try-catch
-阻止, newOffer
从变量列表中消失,只是在 newOffer = someTestThatReturnsABool();
已经被执行了。
就像我一开始就宣布了一样 try-catch
-块,我肯定没有,因此当我离开该块时,它是unassigned/gc之类的。
这仅仅是一些奇怪的Eclipse行为还是预期的?我想核实一下 newOffer
之前在线 section B
. 如果变量列表中没有列出,可以这样做吗?
我试着打印 newOffer
就在之前 section B
但它不会编译,因为它可能没有初始化(而且您不能初始化) booleans
至 void
). 我可以打印它的a.2节,但这是毫无意义的,因为当我在那里,它列在变量列表无论如何。
暂无答案!
目前还没有任何答案,快来回答吧!