EN JP CN

JD.CAST.UPCAST

JD.CAST.UPCAST

JD.CAST.UPCAST は、オブジェクトが型 A に対する演算子のインスタンスでチェックされた後、型 B は型 A の派生型であるにもかかわらず、型 B に変換される場合に起動されます。

脆弱性とリスク

型変換は安全でないため、通常、これはエラーです。実際にはオブジェクトは A の別の派生型である可能性があります。場合によっては、instanceof から cast へのパスに矛盾があると、このエラーは偽陽性を生じる可能性があります。

例 1

14     void setValue(Object a, Object value) {
15         if (a instanceof Map) {
16             HashMap b = (HashMap) a;
17             b.put(value, "");
18         } else if (a instanceof List) {
19             List b = (List) a;
20             b.add(value);
21         }
22     }

JD.CAST.UPCAST:'HashMap' への 'a' の型変換は疑わしい型変換です。'HashMap' は 'Map' の派生型です。このオブジェクトは、'Map' の別の派生型を保持している可能性があり、ClassCastException の原因となる可能性があります。-> 15: a instanceof Map-> 16:(HashMap)a

関連チェッカー