[java] Math.abs(Integer.MIN_VALUE) するとき
Java において Math.abs(Integer.MIN_VALUE)
は Integer.MIN_VALUE
を返す。
MIN_VALUE が -2147483648 で MAX_VALUE が 2147483647 なので、まあそういうものです。
で、通常はそれで問題がないのだが、Math.abs(SecureRandom.getInstance("SHA1PRNG").nextInt());
とかやってると極めて稀にネガティブバリューになる可能性があるからやめろ!!
って findbugs に言われたので、今後はしないようにしようと思います。
結果として、今回は心底どうでもいいところですが、テストコードの中だったので Math.abs((long)SecureRandom.getInstance("SHA1PRNG").nextInt());
としました。
Published: 2014-12-25(Thu) 08:51