Wrapping e unwrapping

Da Head First Java O'Reilly, capitolo 10. Parte dedicata al wrapping di variabili primitive in oggetti delle corrispondenti classi wrapper, e del loro unwrapping.

Dalla versione 5.0 di Java é disponibile la feature di autoboxing, il che vuol dire che un valore primitivo viene automaticamente convertito in oggetto del tipo wrapper corrispondente dove richiesto. E viceversa, un oggetto di un tipo wrapper viene convertito automaticamente nel valore primitivo se necessario.

In questo modo, ad esempio, si semplifica la gestione dei container, dato che questi, in Java, posso lavorare solo con oggetti e non con tipi primitivi.

I wrapper mettono inoltre a disposizione dei metodi per convertire esplicitamente una stringa nel valore primitivo correlato. Per il boolean occorre invece passare dal costruttore, che ammette l'uso di una stringa. Ovviamente ci si deve aspettare la possibilità di una eccezione in caso la stringa non sia quanto atteso.

try {
int x = Integer.parseInt("2");
double d = Double.parseDouble("2.23");
boolean b = new Boolean("true").booleanValue();
}
catch (NumberFormatException nfe) {
//
}

Il modo più semplice per convertire un numero in una stringa é quello di sfruttare l'overloading dell'operatore + definito per le stringhe. Oppure si può fare riferimento al metodo toString() che é definito per ogni oggetto e, nel caso dei wrapper, anche come metodo static:

String s = "" + 23.4;
String t = Double.toString(12.3);

Nessun commento:

Posta un commento