JDK 7: Quais os Métodos Freqüentemente Reescritos que Devem ser Incluídos em java.util.Objects?

7 respostas
JavaLivros

Em preparação para a chegada de uma nova classe na JDK7 chamada java.util.Objects que conterá métodos utilitários freqüentemente escritos, Joe Darcy da Sun fez uma solicitação para o grupo OpenJDK core-libs-dev para idéias sobre quais métodos devem ser incluídos nesta classe. A InfoQ gostaria de repassar esse pedido junto à comunidade Java.

Em seu post inicial, Darcy destacou um par de métodos que podem ser úteis nesta classe:

* Um método equals(arg1, arg2) null-safe que retorna true se ambos os argumentos são NULL, falso se somente um é nulo, e arg1.equals(arg2) , caso contrário
* Um conjunto de métodos compareTo(arg1, arg2) para todos os tipos primitivos (int, long, etc)

Bom, alguém já chegou a uma questão, sobre o assunto e que eficiência e melhor produtividade isso venha a se tornar uma vantagem ?

7 Respostas

B

equals e hashcode: Qualquer boa IDE já faz o trabalho de implementar a parte chata pra vc.

compareTo de primitivos: precisa mais que um return param1 - param2 ?

ViniGodoy

Isso só funciona se o seu campo só tiver valores positivos.

Paulo_Silveira

Isso só funciona se o seu campo só tiver valores positivos.

funciona com negativo tambem sim!!

o que nao funciona é com um positivo muito grande e um negativo muito pequeno, porque ai vai estourar o int e dar a resposta errada. (isso é, se x-y > Integer.MAX_VALUE ou < Integer.MIN_VALUE, se ints)

ViniGodoy

Sim, foi isso que eu quis dizer. Acho que a idéia do método é não falhar nunca…

Obviamente,também vai ser algo trivial como:

x == y ? 0 : (x < y ? -1 : 1);

Eu acho que seria legal uma classezinha como essa aqui:
http://www.guj.com.br/posts/list/101275.java#546125

Evita aquele código horroroso que a IDE faz para você, e já implementa também um algoritmo típico de hash.

J

Isso só funciona se o seu campo só tiver valores positivos.

funciona com negativo tambem sim!!

o que nao funciona é com um positivo muito grande e um negativo muito pequeno, porque ai vai estourar o int e dar a resposta errada. (isso é, se x-y > Integer.MAX_VALUE ou < Integer.MIN_VALUE, se ints)
Essa função bem que poderia normalizar esses intervalos. Alguém tem o link onde estão postadas as sugestões para o jdk7?

Rafael_Afonso

juliocbq:

Essa função bem que poderia normalizar esses intervalos. Alguém tem o link onde estão postadas as sugestões para o jdk7?

Forum: Java SE Snapshots: Project Feedback

J

Rafael Afonso:
juliocbq:

Essa função bem que poderia normalizar esses intervalos. Alguém tem o link onde estão postadas as sugestões para o jdk7?

Forum: Java SE Snapshots: Project Feedback

Obrigado…

Criado 23 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 7
Participantes 6