== Why is this an issue? The purpose of the `hashCode` method is to return a hash code based on the contents of the object. Similarly, the purpose of the `toString` method is to provide a textual representation of the object's contents. Calling `hashCode()` and `toString()` directly on array instances should be avoided because the default implementations provided by the `Object` class do not provide meaningful results for arrays. `hashCode()` returns the array's "identity hash code", and `toString()` returns nearly the same value. Neither method's output reflects the array's contents. == How to fix it Use relevant static `Arrays` method. * `Arrays.hashCode` or `Arrays.deepHashCode` * `Arrays.toString` or `Arrays.deepToString` === Code examples ==== Noncompliant code example [source,java,diff-id=1,diff-type=noncompliant] ---- public static void main(String[] args) { String argStr = args.toString(); // Noncompliant int argHash = args.hashCode(); // Noncompliant } ---- ==== Compliant solution [source,java,diff-id=1,diff-type=compliant] ---- public static void main(String[] args) { String argStr = Arrays.toString(args); // Compliant int argHash = Arrays.hashCode(args); // Compliant } ---- == Resources === Documentation * https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/Arrays.html[Oracle Java SE - Arrays API] === Articles & blog posts * https://github.com/google/error-prone/blob/master/docs/bugpattern/ArrayHashCode.md[Error Prone - ArrayHashCode] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message * Use "Arrays.hashCode(array)" instead. * Use "Arrays.toString(array)" instead. ''' == Comments And Links (visible only on this page) === on 10 Oct 2014, 15:25:37 Freddy Mallet wrote: My 2 cents @Ann: * I would prefer a rule title like "hashCode" and "toString" methods should never be called on array instances * I would increase the severity to "Critical" === on 15 Jul 2016, 14:24:30 Ann Campbell wrote: https://github.com/google/error-prone/blob/master/docs/bugpattern/ArrayHashCode.md endif::env-github,rspecator-view[]