public int compareTo(DynamicField other) {
return other.wildcard.length() - wildcard.length();
}
boolean equals(DynamicField other) {
return compareTo(other) == 0;
}
私はこの問題に直面しています。これを解決する方法を教えてください。私のメソッドの実装は上記のとおりです
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