SonarQube выдает мне серьезную ошибку в моих отчетах о коде качества:
Уберите этот вызов "равно";сравнения с нулем всегда возвращают ложь;рассмотрите возможность использования '== null' для проверки на недействительность.
Однако этот вызов equals
является переопределенным, что означает, что я хотел бы проверить, что произойдет, если мой объект на самом деле будет нулевым внутриequals()
method.
Есть ли способ обойти эту проблему?Разве я не должен проверять обнуляемость моего объекта, или у меня нет другого выбора, кроме как игнорировать этот случай?
РЕДАКТИРОВАТЬ Код, указанный в комментариях:
Сам объект:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MyTestedObject other = (MyTestedObject) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (type != other.type)
return false;
return true;
}
Внутри теста:
@Test
public void test() {
MyTestedObject testedObject = new MyTestedObject();
boolean nullValue = testedObject.equals(null);
Assert.assertFalse(nullValue);
}