2010-04-02 11 views
0

Comment faire pour convertir un objet (pas String), comme TreeNode.item, en primitive comme int.Convertir l'objet en primitive int

+1

Eh bien ce la référence de l'objet pointe-t-elle? Quel genre de conversion voulez-vous? –

+0

La chaîne à la primitive existe parce qu'il est assez facile de deviner comment une chaîne peut contenir un int, ou un double. Mais comment transformez-vous (quel est l'algorithme) votre TreeNode dans un int? La seule façon que je peux envisager est d'obtenir l'étiquette, puis faire une chaîne de conversion int. – Riduidel

+1

Si vous voulez une conversion significative, vous devez nous dire ce que signifie 'Object'. – polygenelubricants

Répondre

6

En réponse à votre dernier commentaire: double-contrôle, que l'objet est vraiment de type entier, utilisez alors la boxe automatique (je suppose que votre niveau du compilateur est 1.5+):

Object o = getTheValue(); 
int result = 0; // we have to initialize it here! 
if (o instanceof Integer) { 
    result = (Integer) o; 
} else { 
    throw new WTFThisShouldHaveBeenIntegerException(); 
} 
0

hashCode() peut être ce que vous voulez. Là encore, ça pourrait ne pas être le cas.

+2

La même fonctionnalité n'est-elle pas également couverte par Random.nextInt()? ;-) – Riduidel

+0

@Itay - merci pour la correction! –

+0

@Riduidel - no. 'hashCode' renvoie la même valeur lorsqu'il est appelé à nouveau pour le même objet (sauf si vous modifiez ses propriétés visibles). Mais il n'est pas non plus nécessairement unique entre les objets (s'ils ont des propriétés visibles identiques, il est probable qu'ils soient identiques). –