Maîtriser l'autoboxing et l'unboxing Java : Exemples pratiques et bonnes pratiques
Maîtriser l'autoboxing et l'unboxing Java : Exemples pratiques et bonnes pratiques
Autoboxing Java – Du primitif vers l'objet wrapper
Quand vous assignez une valeur primitive à une variable de classe wrapper, le compilateur Java effectue l'autoboxing et crée l'objet wrapper correspondant. Par exemple :
int a = 56; // autoboxing
Integer aObj = a;
L'autoboxing est particulièrement pratique avec les collections génériques qui n'acceptent que des objets. Il garde le code concis et type-safe.
Exemple 1 : Autoboxing avec ArrayList
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> liste = new ArrayList<>();
// autoboxing : les primitifs 5 et 6 deviennent des objets Integer
liste.add(5);
liste.add(6);
System.out.println("ArrayList : " + liste);
}
}
Sortie
ArrayList : [5, 6]
L'ArrayList contient des objets Integer. Le compileur boxe automatiquement les littéraux primitifs 5 et 6.
Unboxing Java – De l'objet wrapper vers le primitif
Inversement, l'unboxing convertit un objet wrapper en sa forme primitive. Par exemple :
// autoboxing
Integer aObj = 56;
// unboxing
int a = aObj;
L'unboxing fonctionne transparemment avec les collections, permettant de récupérer des valeurs comme primitives quand nécessaire.
Exemple 2 : Unboxing depuis ArrayList
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> liste = new ArrayList<>();
liste.add(5);
liste.add(6);
System.out.println("ArrayList : " + liste);
// unboxing : l'Integer à l'index 0 devient int
int a = liste.get(0);
System.out.println("Valeur à l'index 0 : " + a);
}
}
Sortie
ArrayList : [5, 6] Valeur à l'index 0 : 5
liste.get(0) renvoie un Integer ; le compilateur le déboxe automatiquement en int pour l'affectation à a.
Comprendre l'autoboxing et l'unboxing aide à écrire du code Java plus propre et efficace, surtout avec les collections et API attendent des objets.
Java
- Variables et littéraux en Java : Guide complet
- Maîtriser l'entrée/sortie Java : Afficher, lire et formater vos données
- Comprendre les expressions, instructions et blocs en Java
- Classes et objets en Java : Guide pratique
- Classes et méthodes abstraites en Java : guide complet
- Maîtriser les classes imbriquées et internes en Java : types, exemples et bonnes pratiques
- Java throw vs throws : maîtriser la gestion d'exceptions avec exemples pratiques
- Maîtriser le remplacement de chaînes Java : replace(), replaceAll() et replaceFirst() expliqués
- Java String toLowerCase() & toUpperCase() : Convertir la casse du texte avec prise en compte des locales