2
我們有一個子類,我們不需要任何equals和hashcode比較。它在超級類中處理。PMD和FindBugs衝突
但FindBugs的給無差錯EQ_DOESNT_OVERRIDE_EQUALS:這個類繼承的類定義equals方法,並添加字段,但沒有定義equals方法本身。因此,這個類的實例的平等將忽略子類的標識和添加的字段。確保這是預期的,並且您不需要重寫equals方法。即使您不需要重寫equals方法,也可以考慮重寫它以記錄子類的equals方法返回調用super.equals(o)
的結果的事實。
當我們剛剛通過調用super
沒有壓倒一切的:
@Override
public boolean equals(Object o) {
return super.equals(o);
}
@Override
public int hashCode() {
return super.hashCode();
}
現在PMD是給無差錯UselessOverridingMethod:覆蓋方法只調用超類中定義的方法相同。
我該如何解決這個問題?
我已經做了註釋,但這是一個適當的解決方案? – xploreraj
@xploreraj,是的。由於這是你的意圖,在這種情況下FindBugs錯誤是誤報。壓制它是很好的。 –
很酷。那就是! – xploreraj