Nope.
Pero no está de más agregar los métodos equals
a sus propias clases. Intento nunca usar ==
al comparar objetos (lo mismo vale para ===
, que es lo mismo para los objetos) ya que solo comprueba identidad.
Lamentablemente, todas las colecciones en Flash y Flex asumen que la identidad es la única medida de igualdad que se necesita.
hay indicios de Flex que alguien quería aliviar este problema en algún momento, pero parece como si hubiera sido abandonado: existe una interfaz llamada IUID, y se menciona en la Guía de Flex desarrollador, pero es no usado en ningún lado Ni siquiera las colecciones de Flex lo usan para determinar la igualdad. Y dado que está pidiendo una solución para Flash, puede que no le haya ayudado de todos modos.
He escrito algo más sobre esto (en el contexto de Flex) en mi blog: Is there no equality?.
Esto no es un problema. Las colecciones de bajo nivel deben usar igualdad de instancias. Cualquier otro tipo de verificación de igualdad es completamente arbitrario y debe estar bien definido en un método de igualdad. Debería ser muy obvio si desea igualdad de instancias o alguna verificación arbitraria de igualdad de datos cuando está codificando algo. En general, el único momento en el que desearía verificaciones de igualdad de datos (verificaciones de una clave de objeto particular) es cuando se trata de objetos de datos remotos o registros de bases de datos que son identificables por una clave en particular. No hay implementación genérica en las colecciones, porque es trivial de implementar. – Triynko
Acabo de crear una colección de métodos auxiliares en una clase DataUtils con una firma de método como 'indexOfValue (collection: *, value: *, match_field_or_function: *): int;' El método simplemente puede iterar sobre la colección y extraer un particular campo de cada objeto para comparar con * valor *, o puede ejecutar cada objeto a través de una función cuyo resultado se compara con * valor *. El parámetro * match_field_or_function * incluso maneja nombres de campos de varias partes para profundizar, como "data.id" en una colección de elementos de lista que tienen cada uno una propiedad de datos que contiene cualquier clase de objeto con un campo de id. – Triynko