Reports code that uses of == or != to compare strings.

These operators determine referential equality instead of comparing content. In most cases, strings should be compared using equals(), which does a character-by-character comparison when the strings are different objects.

Example:


  void foo(String s, String t) {
    final boolean b = t == s;
  }

If t 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(String s, String t) {
    final boolean b = t.equals(s);
  }