Java findbug的危险代码警告
我的代码如下:Java findbug的危险代码警告,java,findbugs,Java,Findbugs,我的代码如下: public void myfun(int value) throws ApplicationException{ Object obj = new Object(); if(value == 1){ obj = <Call to other Service> } else if (value == 2){ obj = <Call to other Service> } else
public void myfun(int value) throws ApplicationException{
Object obj = new Object();
if(value == 1){
obj = <Call to other Service>
} else if (value == 2){
obj = <Call to other Service>
}
else {
throw ApplicationException();
}
}
public void myfun(int值)抛出ApplicationException{
Object obj=新对象();
如果(值==1){
obj=
}else if(值==2){
obj=
}
否则{
抛出ApplicationException();
}
}
我得到了警告,因为我找到了一个死存储到
obj
。我知道这个错误是因为obj是局部变量,我没有在else语句中使用它。我该怎么处理呢?这不是一个不可靠的警告,这是一个不必要的死商店。这与其他条件无关
你的选择是
使用变量,使存储不再那么死气沉沉
Object obj; // don't new Object() here as we will only write over it
if(value == 1){
obj = something();
} elseif (value == 2){
obj = something();
} else {
throw new ApplicationException();
}
useTheObject(obj);
一开始就不要去死商店。变量未使用?把它拿出来
if(value == 1){
something();
} elseif (value == 2){
something();
} else {
throw new ApplicationException();
}
为什么要将值存储在变量中而不使用它?这不是一个不可靠的警告,它是一个不必要的死存储。这与其他条件无关 你的选择是 使用变量,使存储不再那么死气沉沉
Object obj; // don't new Object() here as we will only write over it
if(value == 1){
obj = something();
} elseif (value == 2){
obj = something();
} else {
throw new ApplicationException();
}
useTheObject(obj);
一开始就不要去死商店。变量未使用?把它拿出来
if(value == 1){
something();
} elseif (value == 2){
something();
} else {
throw new ApplicationException();
}
为什么要将值存储在变量中而不使用它?如果只在
if
中使用它,那么在if
中定义它,您可以重构以使用if(value!=true){throw ApplicationException();}打开
然后在知道它是真的情况下安全地继续函数的其余部分。@ScaryWombat实际上有多个if-else,函数的输入是整数。所以我必须在if之外定义它。@jornsharpe Seams就像一条路要走。但这是一种好的代码实践吗?一种选择是根本不使用其他方法。我想了解好的代码实践,这要看情况而定。您的示例太笼统了,不能说太多。如果您只在if
中使用它,那么可以在if
中定义它,您可以重构以使用if(value!=true){throw ApplicationException();}
然后在知道它是真的情况下安全地继续函数的其余部分。@ScaryWombat实际上有多个if-else,函数的输入是整数。所以我必须在if之外定义它。@jornsharpe Seams就像一条路要走。但这是一种好的代码实践吗?一种选择是根本不使用其他方法。我想了解好的代码实践,这要看情况而定。你的例子太笼统了,说不多。