« Salut Amigo ! »
"Aujourd'hui, je vais parler de l'autoboxing . AutoBoxing signifie mettre automatiquement quelque chose dans une boîte."
"Vous vous souviendrez que Java a des types qui héritent de la classe Object, ainsi que des types primitifs. Mais il s'avère que des choses pratiques comme les collections et les génériques ne fonctionnent qu'avec des types qui héritent d'Object."
"Ensuite, la décision a été prise de créer une contrepartie non primitive de chaque type primitif."
Type primitif | Homologue non primitif |
---|---|
octet | Octet |
court | Court |
entier | Entier |
long | Long |
flotter | Flotter |
double | Double |
booléen | booléen |
carboniser | Personnage |
annuler | Annuler |
"Mais c'est super gênant de convertir entre ces types tout le temps :"
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"Surtout lorsque vous travaillez directement avec des collections :"
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
« C'est pourquoi les créateurs de Java ont inventé l'« autoboxing » de leurs types primitifs et le « unboxing » pour leurs homologues non primitifs. »
"Voici comment cela fonctionne:
Ce que tu vois | Que se passe-t-il vraiment |
---|---|
|
|
|
|
|
|
|
|
"C'est tout simple. Vous pouvez assigner des types int et Integer l'un à l'autre, et le compilateur s'occupe de tout le reste."
"C'est très pratique."
"Ouais. Mais il y a des nuances dont je parlerai plus tard."
GO TO FULL VERSION