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

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

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

4

1 回答 1

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
于 2013-10-21T14:21:02.357 回答