OVH Cloud OVH Cloud

erreur de déférencement

4 réponses
Avatar
os2
key étant un int

Math.abs(key.hashCode())) % (table.length/2);

j'obtient l'erreur
int cannot be dereferenced

il y a un moyen de corriger cela?
--
Borland rulez http://pages.infinit.net/borland

4 réponses

Avatar
Nicolas Delsaux
Le 06.10 2003, os2 s'est levé(e) et s'est dit
"tiens, je vais écrire aux mecs de fr.comp.lang.java"

key étant un int

Math.abs(key.hashCode())) % (table.length/2);

j'obtient l'erreur
int cannot be dereferenced

il y a un moyen de corriger cela?


Oui : lire la doc et apprendre que int n'est pas un objet. Il faut utilsier
à la place un Integer. Mais je ne vois pas trop quel est le but de cette
sordide magouille.
Au pif, je dirais que tu as surchargé hashCode pour faire des trucs pas
catholiques. Je me trompe ?
Bien, dans ce ce cas, évites !!!
hashCode n'est surchargée *que* lorsque equals l'est, et *uniquement* pour
s'assurer que si, pour deux objets, hashCode est différent, equals
retournera false.

--
Nicolas Delsaux
"Lorsque la vie devient si dure que l'homme est près de renoncer, il lève
les yeux sur un bout de rocher étincellant et l'adore uniquement pour
retrouver l'espoir plutôt que de se pencher sur ses propres actions pour
connaître le salut."
Parade nuptiale - Donald Kingsbury

Avatar
os2
Nicolas Delsaux wrote:
Le 06.10 2003, os2 s'est levé(e) et s'est dit
"tiens, je vais écrire aux mecs de fr.comp.lang.java"


key étant un int

Math.abs(key.hashCode())) % (table.length/2);

j'obtient l'erreur
int cannot be dereferenced

il y a un moyen de corriger cela?



Oui : lire la doc et apprendre que int n'est pas un objet. Il faut utilsier
à la place un Integer. Mais je ne vois pas trop quel est le but de cette
sordide magouille.
Au pif, je dirais que tu as surchargé hashCode pour faire des trucs pas
catholiques. Je me trompe ?
Bien, dans ce ce cas, évites !!!
hashCode n'est surchargée *que* lorsque equals l'est, et *uniquement* pour
s'assurer que si, pour deux objets, hashCode est différent, equals
retournera false.

au départ key était un Object au lieu d'un int...

je l'ai changé en int
depuis j'ai cette erreur...
faudrait remplacé

Math.abs(key.hashCode())) % (table.length/2);

par

Math.abs((Integer)key.hashCode())) % (table.length/2);

?

--
Borland rulez http://pages.infinit.net/borland


Avatar
Thomas Luyt
os2 wrote in
news:32ggb.34067$:

Salut,

au départ key était un Object au lieu d'un int...
je l'ai changé en int
depuis j'ai cette erreur...
faudrait remplacé

Math.abs(key.hashCode())) % (table.length/2);

par

Math.abs((Integer)key.hashCode())) % (table.length/2);


Plutot

Math.abs((new Integer(key)).hashCode()) % (table.length/2);

--
Thomas

Avatar
Nicolas Delsaux
Le 06.10 2003, os2 s'est levé(e) et s'est dit
"tiens, je vais écrire aux mecs de fr.comp.lang.java"

au départ key était un Object au lieu d'un int...
je l'ai changé en int
depuis j'ai cette erreur...
faudrait remplacé

Math.abs(key.hashCode())) % (table.length/2);

par

Math.abs((Integer)key.hashCode())) % (table.length/2);

?



Non, il faut juste que key soit un objet Java. Object ou Integer, ça ne
change rien à l'affaire.

--
Nicolas Delsaux
"Lorsque la vie devient si dure que l'homme est près de renoncer, il lève
les yeux sur un bout de rocher étincellant et l'adore uniquement pour
retrouver l'espoir plutôt que de se pencher sur ses propres actions pour
connaître le salut."
Parade nuptiale - Donald Kingsbury