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];"
此指令为局部变量赋值,但不会在任何后续指令中读取或使用该值.通常,这表示错误,因为从未使用计算的值.
为什么我这样做?
非常感谢
因为您将变量初始化为value(new String[4]),然后将变量值替换为另一个变量值(结果str.split(",")).因此不需要初始化.
您的代码在功能上等同于
String[] randoms = str.split(",");
Run Code Online (Sandbox Code Playgroud)
除了它分配一个新的String数组,它立即被丢弃.