Я использую Eclipse для генерации .equals() и .hashCode(), и есть опция "Использовать" instanceof "для сравнения типов". Значение по умолчанию для этой опции не проверяется и используется .getClass() для сравнения типов. Есть ли какая-то причина, по которой я должен предпочесть .getClass() над instanceof?
Без использования instanceof:
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Использование instanceof:
if (obj == null)
return false;
if (!(obj instanceof MyClass))
return false;
Обычно я проверяю параметр instanceof, а затем заходим и удаляем проверку "if (obj == null)". (Это избыточно, поскольку нулевые объекты всегда терпят неудачу instanceof.) Есть ли причина, по которой плохая идея?