指令分配一个值,但不会在任何后续指令中读取或使用该值

jav*_*erd 0 java variables findbugs

我有一段代码

for(int i = 0; i < num_of_random; i++){

    String str = in.readLine();
    if(str != null){
        String[] randoms = new String[4];
        randoms = str.split(",");

        dateRanges[i] = Integer.parseInt(randoms[0]);
        id[i] = Integer.parseInt(randoms[1]);
        flag[i] = Integer.parseInt(randoms[2]);
        system[i] = Integer.parseInt(randoms[3]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我针对findBugs运行此代码时,我得到了一个建议

"String [] randoms = new String [4];"

此指令为局部变量赋值,但不会在任何后续指令中读取或使用该值.通常,这表示错误,因为从未使用计算的值.

为什么我这样做?

非常感谢

JB *_*zet 7

因为您将变量初始化为value(new String[4]),然后将变量值替换为另一个变量值(结果str.split(",")).因此不需要初始化.

您的代码在功能上等同于

String[] randoms = str.split(",");
Run Code Online (Sandbox Code Playgroud)

除了它分配一个新的String数组,它立即被丢弃.