¿Por qué el método Java Vector’s contiene () parece no llamar a mi método igual () personalizado?

Vector.contains () llamará a un método llamado Object.equals (Object) en sus elementos. Su método CustomObject.equals (CustomObject) no anula equals (Object), sino que sobrecarga la firma de método igual de 1 argumento. Como tal, no será invocado por ninguna persona que llame que espera llamar a una implementación de Object.equals (Object).

Necesita reescribir el método como una anulación . Entonces:

boolean equals(Object b) { return b instanceof CustomObject && name.trim().equalsIgnoreCase(((CustomObject )b).name.trim()) ); } 

Tenga en cuenta también el uso del tipo booleano primitivo como tipo de retorno: el tipo de retorno de un método de anulación debe ser una subclase estricta del tipo de retorno del método anulado y Boolean no es una subclase estricta de booleano (ya que los tipos primitivos no pueden subclasificarse) )

No está anulando el método igual en la clase de objeto base. Mire cuidadosamente la firma del método.