考虑以下方法:
void a ()
{
int x;
boolean b = false;
if (Math.random() < 0.5)
{
x = 0;
b = true;
}
if (b)
x++;
}
在x++
我收到“局部变量可能尚未初始化”错误。显然 x 永远不会在未初始化的情况下使用。除了初始化 x 之外,还有什么方法可以抑制警告?谢谢。
考虑以下方法:
void a ()
{
int x;
boolean b = false;
if (Math.random() < 0.5)
{
x = 0;
b = true;
}
if (b)
x++;
}
在x++
我收到“局部变量可能尚未初始化”错误。显然 x 永远不会在未初始化的情况下使用。除了初始化 x 之外,还有什么方法可以抑制警告?谢谢。
不,Java 无法检查程序的所有可能代码路径以确定变量是否已初始化,因此它采用安全路线并警告您。
所以不,你必须初始化你的变量来摆脱这个。
有一个 :
void a () {
if (Math.random() < 0.5) {
int x = 1;
}
}
编译器不负责设计和测试算法。你是。
但也许你应该提出一个更实际的用例。你的例子并没有真正表明你的目标是什么。
你为什么不简单地使用
void a ()
{
int x;
boolean b = false;
if (Math.random() < 0.5)
{
x = 0;
b = true;
x++;
}
if (b) {
//do something else which does not use x
}
}
在代码中为什么要在第一个 if 块之外使用 x,所有涉及的逻辑x
只能在第一个 if 块中实现,我没有看到需要使用另一个 if 块来使用 x 的情况.
编辑:或者您也可以使用:
void a ()
{
int x;
boolean b = (Math.random() < 0.5);
if (b) {
x=1
//do something
}
}