Why is this an issue?

Naming a method tostring, hashcode or equal is either:

In both cases, the method should be renamed.

Noncompliant code example

public int hashcode() { /* ... */ }  // Noncompliant

public String tostring() { /* ... */ } // Noncompliant

public boolean equal(Object obj) { /* ... */ }  // Noncompliant

Compliant solution

@Override
public int hashCode() { /* ... */ }

@Override
public String toString() { /* ... */ }

@Override
public boolean equals(Object obj) { /* ... */ }