Reports code that uses == or != instead of equals() to test for Number equality.

With auto-boxing, it is easy to make the mistake of comparing two instances of a wrapper type instead of two primitives, for example Integer instead of int.

Example:

  void foo(Integer a, Integer b) {
    final boolean bool = a == b;
  }

If a is known to be non-null, then it's safe to apply the "unsafe" quick-fix and get the result similar to the following:

  void foo(Integer a, Integer b) {
    final boolean bool = a.equals(b);
  }