Si es necesario utilizar un Class<T>
como parte de una clave de Map
, ¿cuál es la forma correcta de definir hashCode
y equals
?
Un Class<T>
hereda los de Object
el que comprobar la igualdad de referencia y devolver la dirección de memoria que el código hash pero en mi mente que no está claro cuál es la definición significativa de equals
y hashCode
definición de un Class<T>
.
¿Debo usar theClass.getClass().hashCode();
por ejemplo (donde tenemos Class<T> theClass;
) para usar los métodos de la instancia real?
Pero esto no parece ser lo correcto.
Por ejemplo en el javadoc para Class<T>
:¿Cómo definir significativamente hashCode y es igual para java.lang.Class <T>?
Cada matriz también pertenece a una clase que se refleja como un objeto de clase que es compartida por todas las matrices con el mismo tipo de elemento y número de dimensiones
Parece que en algunos casos el mismo Class<T>
se comparte entre los objetos? Entonces, ¿cuál sería la manera de seguir? ¿Quizás use theClass.hashCode()
y theClass.equals()
para usar la igualdad de referencia? No estoy seguro en absoluto aquí.
No hay nada que definir, ya que hashcode y equals ya están implementados, y me cuesta imaginar cómo y aún más difícil imaginar por qué cambiaría esa implementación. –
@JensSchauder: al usar Eclipse para generar 'hashCode' y' equals' automáticamente, se produjo una advertencia quejándose de que 'hashCode' y' equals' no están definidos para 'Class'. Esto me preocupaba si era una advertencia válida y si debería hacer algo al respecto – Cratylus
No sé lo que intenta hacer, pero 'Class' es una clase que forma parte de java. No puedes implementar nada para eso. ¿Cuál es el nombre completo del archivo fuente donde intenta agregar hashCode y equivale? –