Datalbi  
Créé le 04/05/2016 par Laurent Bourcier

Java SE 8 Programmer : Les enveloppes (Wrappers)

Les Classes Wrappers

Chaque type primitif possède une classe du même nom (à l'exception de int et char) qui fournit des méthodes spécifiques.

Type primitif      Class wrapper
-----------------  ---------------
boolean            Boolean
byte               Bytes
short              Short
int                Integer
long               Long
float              Float
double             Double
char               Character

Les classes Byte, Short, Integer, Long, Float et Double héritent de la classe Number.

Chaque classe possède un constructeur prenant en argument le type primitif. Il existe aussi un constructeur avec une String en parametre. Il est possible aussi d'utiliser la méthode valueOf.

Exemple :

Integer n1 = new Integer(10);
Integer n2 = new Integer("11");
Integer n3 = Integer.valueOf(12);
Integer n4 = Integer.valueOf("13");

Les classes wrapper permettent aussi de convertir des String en nombre :

// La methode static parseInt renvoit une exception NumberFormatException si la chaine n'est pas au bon format.
int n1 = Integer.parseInt("10");

Les classes wrapper permettentent les conversion de type :

Integer n1 = new Integer(10);
Float f1 = new Float(3.14);

float f2 = n1.floatValue();
int n2 = f1.intValue();  // renvoie l'entier le plus proche

Autoboxing et Unboxing

Depuis Java 5, il est possible décrire ceci (c'est le compilateur qui ajoute le code nécessaire)

Integer n = 10;    // auto boxing
int i = n;         // un boxing

// Ceci est plus facile que d'ecrire :
int i = n.intValue();