JAVA.DANGEROUS_CAST

危険なキャストの使用を検出します。危険なキャストとして検出されるパターンは、"int / short / long to byte"、"float to int / short / long"、および "double to float" です。

脆弱性とリスク

数字の見落としにより、意図しない動作を引き起こす場合があります。

軽減と防止

明らかな理由がない限り、意図しない動作を引き起こす可能性があるキャストの使用は避けるべきです。

例 1

コピー
public class C07 {

    void dangerousIntegerNarrowing() {
        int i = 128;
        short s = 128;
        long l = 128;
        byte b = (byte) i;// NG
        b = (byte)s;//NG
        b = (byte)l;//NG

        float fmin = Float.MIN_VALUE;
        float fmax = Float.MAX_VALUE;
        short sfmin = (short) fmin; // NG
        int ifmax = (int) fmax; // NG
        long lfmax = (long)fmax;//NG

        double dmin = Double.MIN_VALUE;
        double dmax = Double.MAX_VALUE;
        float fdmin = (float) dmin; // NG
        float fdmax = (float) dmax; // NG
    }
}