Sobes.tech
Junior

Come effettuare la conversione tra tipi di riferimento e tipi primitivi e viceversa?

sobes.tech AI

Risposta dell'AI

La conversione tra tipi di riferimento (wrapping) e tipi primitivi (unboxing) avviene automaticamente in Java, ma può essere fatta anche esplicitamente.

Autoboxing: Conversione automatica di un tipo primitivo nel corrispondente tipo di riferimento.

int primitiveInt = 10;
// Viene convertito automaticamente in Integer
Integer wrapperInt = primitiveInt; 

Unboxing: Conversione automatica di un tipo di riferimento nel corrispondente tipo primitivo.

Integer wrapperInteger = 20;
// Viene convertito automaticamente in int
int primitiveInteger = wrapperInteger;

Conversione esplicita:

Conversione di un tipo di riferimento in un primitivo: usando metodi come intValue(), doubleValue(), ecc.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // conversione esplicita

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // conversione esplicita

Conversione di un tipo primitivo in un tipo di riferimento: usando costruttori di classi wrapper o metodi statici valueOf(). Il metodo valueOf() è preferibile perché può fare cache dei valori.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // uso del costruttore (obsoleto)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // uso di valueOf()

Tabella delle conversioni:

Tipo primitivo Tipo di riferimento
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double