Al ejecutar FindBugs en mi proyecto, tengo algunas instancias del error descrito anteriormente.Advertencia de Findbugs: el método Equals no debería asumir nada sobre el tipo de su argumento
A saber, mis versiones primordiales de iguales arrojan el objeto RHS en el mismo tipo que el objeto en el que se define la versión principal.
Sin embargo, no estoy seguro de si es posible un mejor diseño, ya que AFAIK Java no permite la variación en los parámetros del método, por lo que no es posible definir ningún otro tipo para el parámetro igual.
¿Estoy haciendo algo muy malo o los FindBugs están demasiado ansiosos?
Una forma diferente de expresar esta pregunta es: cuál es el comportamiento correcto si el objeto pasado a igual no es del mismo tipo que un LHS: ¿Es falso o debería haber una excepción?
Por ejemplo:
public boolean equals(Object rhs)
{
MyType rhsMyType = (MyType)rhs; // Should throw exception
if(this.field1().equals(rhsMyType.field1())... // Or whatever
}
suena un poco extraño. por favor muéstranos un código. –