## Why is this an issue?

This rule involves the use of `Math.abs` and negation on numbers that could be `MIN_VALUE`. It is a problem because it can lead to incorrect results and unexpected behavior in the program.

When `Math.abs` and negation are used on numbers that could be `MIN_VALUE`, the result can be incorrect due to integer overflow. Common methods that can return a `MIN_VALUE` and raise an issue when used together with `Math.abs` are:

- `Random.nextInt()` and `Random.nextLong()`
- `hashCode()`
- `compareTo()`

Alternatively, the `absExact()` method throws an `ArithmeticException` for `MIN_VALUE`.

### Noncompliant code example

    public void doSomething(String str) {
      if (Math.abs(str.hashCode()) > 0) { // Noncompliant
        // ...
      }
    }

### Compliant solution

    public void doSomething(String str) {
      if (str.hashCode() != 0) {
        // ...
      }
    }

## Resources

- Oracle SDK 20 - Math.abs(int)