类定义compareTo(...)并使用Object.equals()

时间:2013-10-21 14:09:54

标签: java warnings findbugs compareto

 public int compareTo(DynamicField other) {
     return other.wildcard.length() - wildcard.length();
 }

 boolean equals(DynamicField other) { 
    return compareTo(other) == 0; 
 } 

我正面临这个问题。你能建议我怎么解决这个问题吗? 我的方法实现如上所述

1 个答案:

答案 0 :(得分:3)

您的equals方法未正确定义,应为:

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

这样的事情应该有效:

@Override
public boolean equals(Object obj)
{
  if (!(obj instanceof DynamicField))
     return false;
  return compareTo((DynamicField)obj) == 0;
}

如果要覆盖其他类的方法或实现接口方法,则应始终添加@Override。如果你错误地定义了它,它应该告诉你类似的东西:

method does not override or implement a method from a supertype