I am clueless here…
1: private static class ForeignKeyConstraint implements Comparable<ForeignKeyConstraint> {
2: String tableName;
3: String fkFieldName;
4:
5: public int compareTo(ForeignKeyConstraint o) {
6: if (this.tableName.compareTo(o.tableName) == 0) {
7: return this.fkFieldName.compareTo(o.fkFieldName);
8: }
9: return this.tableName.compareTo(o.tableName);
10: }
11: }
In line 6 I get from FindBugs: Bug: net.blabla.SqlFixer$ForeignKeyConstraint defines compareTo(SqlFixer$ForeignKeyConstraint) and uses Object.equals()
I don’t know how to correct this.
This errors means that you’re not overriding
equalsinForeignKeyConstraint(and thus inheriting theequalsfromObject) so the following is not true (from the javadoc ofcompareTo):To fix the FindBugs check, override
equals– andhashCode– if it makes sense which is generally the case (or exclude the check for this class and document that your class violates this condition using the suggested note).