Cualquier razón para preferir getClass () sobre instanceof al generar.equals()?


Estoy usando Eclipse para generar .equals() y .hashCode(), y hay una opción etiquetada "Use 'instanceof' to compare types". El valor predeterminado es que esta opción no esté marcada y use .getClass() para comparar tipos. ¿Hay alguna razón por la que debería preferir .getClass() a instanceof?

Sin usar instanceof:

if (obj == null)
  return false;
if (getClass() != obj.getClass())
  return false;

Usando instanceof:

if (obj == null)
  return false;
if (!(obj instanceof MyClass))
  return false;

Me suelen comprobar la instanceof y, a continuación, eliminar el "if (obj == null)" de verificación. (Es redundante ya que los objetos null siempre fallarán instanceof.) Is there ¿alguna razón por la que sea una mala idea?


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52