JD.BITR

JD.BITR は、チェックの両側に定数のみが含まれる場合に発生します。これは、プログラミングエラーの後、コンパイラの最適化によって式が定数に置き換えられた結果であると考えられます。その結果、下記の例のように偶発的な条件で代入を起動します。注意: このエラーが発生するかどうかは、Java コンパイラによるコードの最適化方法に依存します。コンパイラによっては、JD.BITR は発生せず、代わりに JD.RC.EXPR.DEAD または JD.RC.EXPR.CHECK が発生します。

脆弱性とリスク

'if' 文の静的に評価可能な式のほとんどがロジックのエラーになります。

軽減と防止

'if' 文を修正してください。

例 1

コピー
     static void check(boolean hasFields) {
         if (hasFields = true) {
             foo();
         }
         return;
     }

JD.BITR が 11 行目に対して報告されています。式 'hasFields = true' は常に 'true' となります。入力ミスがありますか?