Java:"局部变量可能尚未初始化"不够智能?

Iva*_*van 5 java variables compiler-errors initialization local

请考虑以下方法:

void a ()
{
    int x;
    boolean b = false;
    if (Math.random() < 0.5)
    {
        x = 0;
        b = true;
    }
    if (b)
        x++;
}
Run Code Online (Sandbox Code Playgroud)

x++我得到的"局部变量可能尚未初始化"的错误.很明显,x永远不会被初始化.除了初始化x之外,有没有办法抑制警告?谢谢.

Kep*_*pil 5

不,没有办法Java可以检查程序的所有可能代码路径,以确定变量是否已初始化,因此需要安全路径并发出警告.

所以不,你必须初始化你的变量来摆脱这个.

  • 这有点误导:在编译时,IDE外部的问题是相同的,这不仅仅是一个警告. (9认同)