¿Cuál es el equivalente Java de la interfaz IEquatable de .NET?¿Cuál es el equivalente Java de la interfaz IEquatable <T> de .NET?
Respuesta
Por desgracia, no creo que hay una - que es un dolor en términos de proporcionar mapas de hash, etc con las comparaciones de igualdad personalizados :(
Obviamente hay Comparable<T>
como un equivalente a IComparable<T>
y Comparator<T>
para IComparer<T>
, pero no creemos que haya ninguna equivalente de IEqualityComparer<T>
y IEquatable<T>
.
puede haber bibliotecas de terceros que proporcionan el mismo tipo de interfaz y mapas que los utilizan, por supuesto ...
Si solo está buscando esa interfaz para implementar el método equals()
, puede anular directamente el método object.equals()
.
una buena modificación de la implementación de 'equals()' se puede encontrar aquí: http://stackoverflow.com/questions/185937/overriding-the-java-equals-method-quirk – Julien
La interfaz IEquatable<T>
es principalmente útil con clases genéricas que almacenan muchas instancias de lo que puede ser unboxed tipos de estructura; es marginalmente útil con tipos sellados, y peor que inútil con los tipos no sellados. Por lo tanto, realmente no tendría sentido implementar IEquatable<T>
en Java.
Hay un tipo equivalente en Guava llamado Equivalence<T>.
- 1. Ejecución IEquatable <T> donde T es una interfaz
- 2. ¿Cuál es el equivalente de Java de AggregateException de .net?
- 3. ¿Cuál es el equivalente .NET de NumberFormatException de Java?
- 4. ¿Cuál es el equivalente .NET de StringBuffer en Java?
- 5. ¿cuál es el equivalente .NET de @Deprecated en java?
- 6. ¿Cuál es el equivalente a .NET SortedDictionary, en Java?
- 7. ¿Qué es .NET equivalente de InterruptedException (Java)?
- 8. ¿Cuál es el uso de la interfaz IClonable en .NET?
- 9. ¿Cuál es la diferencia entre IEqualityComparer <T> e IEquatable <T>?
- 10. ¿Cuál es la diferencia entre IEquatable y simplemente anulando Object.Equals()?
- 11. ¿Cuál es el equivalente .Net de los Proxy dinámicos de Java?
- 12. ¿cuál es el uso real de la interfaz en java?
- 13. ¿Cuál es el uso de la interfaz clonable en java?
- 14. ¿Cuál es el C# equivalente a la instancia de Java()?
- 15. ¿Cuál es el equivalente de WiX de Environment.SpecialFolder.ApplicationData from .NET?
- 16. ¿Cuál es el equivalente de InfiniteIterator de PHP en .NET?
- 17. ¿Cuál es el equivalente de JPA en .NET?
- 18. ¿Cuál es el equivalente .NET de PHP var_dump?
- 19. C#/.NET equivalente para Java Collections. <T> emptyList()?
- 20. ¿Cuál es la diferencia entre las interfaces IComparable e IEquatable?
- 21. ¿Cuál es el equivalente de Smalltalk de Java estático?
- 22. ¿Cuál es el equivalente de Ruby para StringReader de Java?
- 23. ¿cuál es el equivalente de C# de static {...} en Java?
- 24. ¿Cuál es el equivalente de Scala del ClassName.class de Java?
- 25. ¿Cuál es el equivalente de Java 1.4.2 de Pattern.quote()
- 26. ¿Cuál es el equivalente de C# de Java DecimalFormat?
- 27. ¿Cuál es el equivalente de Thread.sleep() de Java en JavaScript?
- 28. ¿Cuál es el equivalente de Java de ManualResetEvent?
- 29. equivalente Java de .NET Acción <T> y Func <T,U>, etc
- 30. ¿Cuál es el equivalente de C# /. NET de BufferedInputStream (en Java)?
No sería demasiado difícil crear un decorador delegante que implemente 'Map' y su propia interfaz' Equatable' (* ¿es incluso una palabra? *). – Esko
@Esko: ¿Te refieres a hacer que el mapa subyacente contenga claves proxy, efectivamente? Es factible, pero sería feo ... y sospecho que crearía problemas cuando intentaste hacer mapas débiles, etc. Habría sido mucho mejor si hubiera estado allí para empezar. –
¿Por qué no de esa manera también? Proxying a través de 'WeakReference' tampoco debería ser demasiado trabajo extra. Aunque veo tu punto, C# tiene muchas de estas cosas implementadas fácilmente, mientras que a Java le gusta ser el lenguaje "barebones". Supongo que Google Collections puede tener algo para esto a través de su sistema Predicado/Función, pero no estoy seguro ... – Esko