Java/Tipi di dato: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 59:
 
Le specifiche di linguaggio affermano che, se si cerca di convertire un oggetto di un tipo X ad un altro tipo Y di cui l'oggetto '''non''' è istanza, allora a tempo di esecuzione viene lanciata una eccezione (di tipo [http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html ClassCastException]). Dalle regole elencate sopra risulta evidente che una eccezione può essere lanciata solo dalle righe di codice che fanno uso di cast esplicito per la conversione.
 
=== Classi wrapper ===
Dovunque sia necessario un oggetto in luogo di un valore di un tipo base, si può usare una delle classi wrapper definite nel package java.lang:
*boolean: [http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html java.lang.Boolean]
*byte: [http://download.oracle.com/javase/6/docs/api/java/lang/Byte.html java.lang.Byte]
*short: [http://download.oracle.com/javase/6/docs/api/java/lang/Short.html java.lang.Short]
*char: [http://download.oracle.com/javase/6/docs/api/java/lang/Char.html java.lang.Char]
*int: [http://download.oracle.com/javase/6/docs/api/java/lang/Integer.html java.lang.Integer]
*long: [http://download.oracle.com/javase/6/docs/api/java/lang/Long.html java.lang.Long]
*float: [http://download.oracle.com/javase/6/docs/api/java/lang/Float.html java.lang.Float]
*double: [http://download.oracle.com/javase/6/docs/api/java/lang/Double.html java.lang.Double]
 
{{Riquadro attenzione|titolo=Classi wrapper e collezioni|testo=
Il caso più comune è quello in cui si vuole aggiungere un intero ad una [http://download.oracle.com/javase/6/docs/api/java/util/List.html java.util.List]: si deve prima racchiudere il valore intero in un oggetto java.lang.Integer, dopodiché si aggiunge questo oggetto alla List.
}}
 
Esiste una classe anche per il tipo ''void'' [http://download.oracle.com/javase/6/docs/api/java/lang/Void.html java.lang.Void], sebbene questo tipo non definisca alcun valore. Essa è utilizzata in contesti particolari, tipicamente quando si usa la ''reflection''.
 
Per i tipi numerici esistono anche le classi [http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html java.math.BigInteger] e [http://download.oracle.com/javase/6/docs/api/java/math/BigDecimal.html java.math.BigDecimal], le quali, però, non sono considerate classi wrapper. Queste due classi permettono di rappresentare numeri interi o decimali arbitrariamente grandi, uscendo fuori dai limiti imposti sulle dimensioni dei tipi primitivi.
 
== Le stringhe ==