恶搞代码警告由findbug

时间:2017-03-22 05:50:36

标签: 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 {
       throw ApplicationException();
    }
}

我正在通过FindBug警告Dead存储到obj。我理解这个错误即将发生,因为obj是局部变量,我没有在else语句中使用它。我应该怎么处理这个?

1 个答案:

答案 0 :(得分:3)

这不是一个狡猾的警告,它是一个不必要的死店。它与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();
}

为什么要将值存储在变量中而不对其执行任何操作?