HOWTO · Java
Comment convertir un Object en int en Java
Découvrez quatre façons d'obtenir un int à partir d'un Object en Java : convertir un Integer, utiliser Number.intValue(), appeler Integer.intValue() ou analyser un texte entier.
Sur cette page
Pour obtenir un int à partir d’un Object en Java, identifiez d’abord le type d’exécution de la valeur. Convertissez-la et déballez-la lorsqu’elle contient un Integer ; utilisez Number.intValue() pour un autre wrapper numérique ; ou analysez son texte avec Integer.parseInt(). Ces approches ne sont pas interchangeables : une référence Object seule ne promet pas une valeur numérique.
La conversion de types est l’un des groupes de sujets du Tutoriel Java, où les guides de conversion sont rassemblés en un seul endroit.
Les exemples ci-dessous ne sont pas exécutés dans les preuves fournies ; leurs valeurs indiquées découlent des conversions Java montrées.
Convertir Object en int en Java à l’aide de la classe wrapper Integer
Lorsque l’objet contient un Integer, une conversion suivie d’une affectation à int vérifie le type wrapper et déballe sa valeur. La méthode ci-dessous renvoie la valeur 123 pour l’objet fourni :
public class Main {
public static int objectToInt(Object obj) {
return (Integer) obj;
}
public static void main(String[] args) {
Object obj = Integer.valueOf(123);
int value = objectToInt(obj);
System.out.println("The converted int is " + value);
}
}
La conversion exige que la valeur d’exécution soit un Integer ; une autre classe provoque une ClassCastException. Si obj est null, la conversion produit null et son déballage en int provoque une NullPointerException. Vérifiez la valeur ou gérez ces cas si l’entrée n’est pas garantie.
Convertir Object en int en Java à l’aide de Number et de la fonction intValue()
Utilisez Number lorsque l’objet peut contenir différents types wrappers numériques, tels que Integer, Long ou Double. La valeur d’exécution doit tout de même être un Number. intValue() renvoie un int ; pour les valeurs hors de la plage int ou comportant une partie fractionnaire, la conversion peut perdre des informations. Dans cet exemple, la valeur renvoyée est 123 :
public class Main {
public static int objectToInt(Object obj) {
return ((Number) obj).intValue();
}
public static void main(String[] args) {
Object obj = Double.valueOf(123.9);
int value = objectToInt(obj);
System.out.println("The converted int is " + value);
}
}
Cela convertit une valeur numérique ; cela n’analyse pas une chaîne telle que "123". Un objet non-Number ne peut pas être converti en Number.
Convertir Object en int en Java à l’aide de Integer et de la fonction intValue()
Cette forme est spécifiquement destinée à un objet dont la valeur d’exécution est Integer. Elle nomme explicitement l’étape de déballage avec intValue(), bien que l’affectation directe du Integer converti à int fasse généralement le même travail automatiquement. La méthode renvoie 123 pour cette entrée :
public class Main {
public static int objectToInt(Object obj) {
return ((Integer) obj).intValue();
}
public static void main(String[] args) {
Object obj = Integer.valueOf(123);
int value = objectToInt(obj);
System.out.println("The converted int is " + value);
}
}
Comme pour la conversion directe, un type d’exécution différent provoque une ClassCastException, et un Integer null provoque une NullPointerException lorsque intValue() est appelé. Utilisez la forme Number plus large lorsque d’autres types wrappers numériques sont des entrées valides.
Convertir Object en int en Java à l’aide de la fonction Integer.parseInt()
L’analyse est destinée au texte qui représente un entier décimal. Convertissez l’objet en texte avec toString(), puis passez cette chaîne à Integer.parseInt(). Pour la chaîne "123", l’analyse renvoie la valeur int 123 :
public class Main {
public static int objectToInt(Object obj) {
return Integer.parseInt(obj.toString());
}
public static void main(String[] args) {
Object obj = "123";
int value = objectToInt(obj);
System.out.println("The converted int is " + value);
}
}
Le texte doit être une représentation décimale valide dans la plage int ; sinon, Integer.parseInt() lève une NumberFormatException. Cela analyse du texte plutôt que de convertir un objet numérique. Un objet null ne peut pas non plus fournir de texte via toString().
Conclusion
Choisissez la conversion en fonction de ce que l’Object contient réellement : convertissez et déballez un Integer, utilisez Number.intValue() pour un autre wrapper numérique, ou utilisez Integer.parseInt() lorsque son texte représente un entier. Lorsque l’on sait que l’objet contient un Integer, la conversion directe est l’approche la plus simple. Validez ou gérez le type d’exécution et la nullité lorsqu’ils ne sont pas garantis.