Els tipus de dades primitius no són objectes però, de vegades, es necessiten objectes.

Tipus primitiuClasse envoltant
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

Quina diferència hi ha? Les dades primitives són un tipus que s'hereda de llenguatges de programació que no estan orientats a objectes, com per exemple C.

A més, les dades primitives no necessiten ser declarades, és a dir, podem declarar directament. Per exemple, podem inicialitzar un tipus primitiu de la següent manera:

int numero = 0;

I també podem utilitzar la classe Integer i necessitarem crear l'objecte:

Integer numero = new Integer(0);

Els wrappers, coneguts com a classes envoltants, són unes classes especials que proveeixen de funcions bàsiques els tipus primitius. A més, aquestes classes tenen mètodes que permeten manipular el tipus de dada primitiu com si fos un objecte.

Hi ha diversos termes utilitzats quan fem servir wrappers:

  • Boxing: Convertir un tipus primitiu en la seva classe Wrapper.
  • Unboxing: Convertir un objecte d'una classe Wrapper en el seu tipus primitiu.

Entre les funcions principals que comparteixen aquestes classes hi ha:

  • xxxValue(): Rep un valor numèric i el converteix a tipus primitiu:
Integer numero = new Integer(13);
double n = numero.doubleValue();
  • valueOf(), parseXxx(): Converteixen una cadena al tipus primitiu especificat o fan saltar l'excepció NumberFormatException si no és possible fer-ho.
String a = new String("113");
Integer b = Integer.valueOf(a);
  • toString(): Convertim tipus de dades primitius en cadenes de caràcters.
Integer a = new Integer(12);
String b = a.toString();