为什么FindBugs在这里抱怨?

时间:2012-07-26 16:23:53

标签: java intellij-idea findbugs

 public int getFreezeColumns() {
    Integer currentValue = (Integer) checkValueBinding("freezeColumns", this.freezeColumns);
    if (currentValue != null) {
      return currentValue;
    }
    return 0;
  }

FindBugs说:

  

原语被装箱,然后立即取消装箱。这可能是由于在需要取消装箱值的地方进行手动装箱,因此迫使编译器立即撤消装箱的工作。

我怎么可能解决这个问题?

2 个答案:

答案 0 :(得分:2)

我认为投诉有点误导:你没有装checkValueBinding Object的返回值,但是你过早地将它投射到Integer

尝试更改代码,看看它是否有助于您避免警告:

public int getFreezeColumns() {
    Object currentValue = checkValueBinding("freezeColumns", this.freezeColumns);
    if (currentValue != null) {
        return (Integer)currentValue;
    }
    return 0;
}

答案 1 :(得分:1)

在我看来,它抱怨您正在创建Integer,然后立即将其转换为int以便将其返回。

checkValueBinding返回什么?你真的需要将它包装成Integer吗?