Review: JDK 8 CR for Support Integer overflow

Stephen Colebourne scolebourne at
Mon Feb 6 22:35:55 UTC 2012

On 6 February 2012 21:16, Roger Riggs <Roger.Riggs at> wrote:
>  * Removed the negateExact methods since they don't pull their weight
>   in the API,
>   simple tests for MIN_VALUE and MAX_VALUE can be done by the
>   developer more efficiently.

Sorry, but I can't agree with this. Developers get negation of numbers
wrong all the time by ignoring the special case. Its a big source of
hidden bugs. Increment/decrement are replaceable by add/subtract (with
less readability), but negate is not.

The whole purpose of methods like this is not to say "oh they're easy
for the caller to write", but to write it once accurately,
well-tested, and with clear intent for code readers. Look at the
methods on Objects to see that complexity of the implementation is not
the deciding factor.

Many, many developers will thank you for having negate, increment and decrement.


More information about the core-libs-dev mailing list