i tipo_valore di tipo primitivo ha una corrispondete di classe wrapper
tipo valoreclasse wrapper
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

le classi wrapper sono delle verie e proprie classi già preconfezionate in Java con i loro metodi, variabili ecc...
una classe wrapper consiste in pratica in un involucro (wrap) che ha l'unico scopo di contenere un valore primitivo (tipo_valore) rendendolo da un lato un oggetto con metodi

tutte le classi wrapper sono definite nel package java.lang e sono qualificate come final, perciò non è possibile derivare da loro
tutte le classi wrapper sono immutabili, cioè non è possible dopo la costruzione cambiarne il valore

sintassi:
costruzione classe in maniera standard (boxing)
int val = 44; dichiarazione ed assegnazione tipo_valore
Integer value = new Integer(val); creazione classe wrapper dal tipo_valore primitivo
int valueBack = value.intValue(); estrazione del valore dalla classe wrapper tramite metodo .intValue()


costruzione in maniera automatica

  • autoboxing
  • Integer value = 10;
    Double y = 5.5f;
    Boolean z = true;

  • unboxing
  • int x = -1;
    Integer y = x;


    metodi di conversione parsing
    le classi wrapper hanno dei metodi per la conversione da stringa a numero e viceversa dei valori (parsing)

    esempio: stringa numeri → int
    String quarantatre = "43"; assegnazione valore string
    Integer q = new Integer(quarantatre); conversione in tipo int 43


    in caso di errore si genera una eccezione di tipo NumberFormatException

    esempio: stringa caratteri → int
    String quarantaquattro = "quarantaquattro"; assegnazione valore string
    Integer q = new Integer(quarantaquattro); errore