Je veux comparer aux variables, les deux de type T extends Number
. Maintenant, je veux savoir laquelle des deux variables est plus grande que l'autre ou égale. Malheureusement je ne connais pas encore le type exact, je sais seulement que ce sera un sous-type de java.lang.Number
. Comment puis je faire ça?Comparer les valeurs de deux nombres génériques
EDIT: J'ai essayé une autre solution à l'aide TreeSet
s, ce qui en fait travaillé avec ordre naturel (bien sûr cela fonctionne, toutes les sous-classes de Number
mettre en œuvre Comparable
sauf pour AtomicInteger et AtomicLong). Ainsi, je vais perdre les valeurs en double. Lorsque vous utilisez List
s, Collection.sort()
n'acceptera pas ma liste en raison de discordances liées. Très insatisfaisant.
Hmm - cela est lié: http://stackoverflow.com/questions/480632/why-doesnt-java-lang-number-implement-comparable – Jonik
Cela ne devrait pas être étiqueté "génériques". Les "nombres génériques" ne se réfèrent pas aux génériques Java dans ce cas. – DJClayworth
Google Collections a un TreeMultiSet qui vous permet de trier les choses sans perdre les doublons. – gustafc