Como obter um objeto através de seu hashCode?

2 respostas
Neoromancer

Bom dia!

Quando imprimo meu objeto do tipo Calendar ele me retorna o DAY_OF_MONTH da maneira correta pela qual informei no parâmetro.
Porém, quando imprimo apenas o meu objeto.DAY_OF_MONTH ele me retorna um valor diferente do que mostrou na msg que imprimi do objeto.

Tive a idéia de obter o do objeto.DAY_OF_MONTH.hashCode() e, com seu hashCode em mãos, fazer o processo inverso e obter o objeto em que o hash está indicando
e verificar se quando imprimo apenas o DAY_OF_MONTH ele está apontando para um local diferente na memória.

Depois de grande procura na internet não encontrei como encontrar um objeto apartir de um hashCode [ algo como getObjectByHashCode(int hashCode) ]

Se verem uma outra forma de encontrar essa solução, agradeço se postarem!]

Grande abraço!

2 Respostas

Rodrigo_Sasaki

você sabe que o Calendar.DAY_OF_MONTH é só uma constante né? e não o valor real do seu objeto.

Calendar c = Calendar.getInstance(); System.out.println(c.get(Calendar.DAY_OF_MONTH)); // O dia do mês da sua instância de Calendar System.out.println(Calendar.DAY_OF_MONTH)); // Constante de uso interno da classe implementadora de Calendar System.out.println(c.DAY_OF_MONTH)); // Também imprime a constante de uso interno da classe implementadora de Calendar
Agora quanto ao buscar o objeto pelo hash, não creio que seja possível, talvez fosse interessante você pesquisar mais sobre o que é o hashCode.

Leia esse post pra começar: Ensinando o que é o hashCode

Neoromancer

digaoneves tem toda razão: são constantes.

usei dessa forma:

System.out.println(c.get(Calendar.DAY_OF_MONTH)); // O dia do mês da sua instância de Calendar

e funcionou perfeitamente!

Fica aqui meus agradecimentos, digaoneves :smiley:

Criado 7 de maio de 2012
Ultima resposta 7 de mai. de 2012
Respostas 2
Participantes 2