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

FindBugsは言う:

プリミティブはボックス化され、すぐにボックス化解除されます。これはおそらく、ボックス化されていない値が必要な場所での手動ボックス化が原因であるため、コンパイラーはボックス化の作業をすぐに元に戻す必要があります。

どうすればこれを修正できますか?

4

2 に答える 2

2

苦情はやや誤解を招くと思います。戻り値がであるボクシングではありませんcheckValueBindingが、時期尚早Objectにキャストしています。Integer

コードを変更して、警告を回避するのに役立つかどうかを確認してください。

public int getFreezeColumns() {
    Object currentValue = checkValueBinding("freezeColumns", this.freezeColumns);
    if (currentValue != null) {
        return (Integer)currentValue;
    }
    return 0;
}
于 2012-07-26T16:29:08.850 に答える
1

あなたがを作成していると不平を言っているように私には思えますInteger、そしてそれをintすぐに変換してそれを返します。

checkValueBindingは何を返しますか?あなたは本当にそれをに包む必要がありIntegerますか?

于 2012-07-26T16:25:55.160 に答える