Originariamente inviato da Downloader
Ho la necessità di convertire il contenuto di un oggetto Object in un valore intero per poter effettuare dei calcoli, ma il compilatore quando vado a controllare il codice vede che provo a castare l'Object e da (giustamente) errore.
Mi chiedevo allora se c'era una soluzione alternativa al cast per poter fare operazione matematiche con un Object.
Tu hai una variabile di tipo reference a Object. Ma devi stabilire quale è il tipo dell'oggetto referenziato!
Avere una variabile del tipo:
Object unOggetto;
....
dice molto poco ... a cosa fa riferimento? Un reference di tipo Object può fare riferimento a qualunque tipo di oggetto!
unOggetto = new Integer (10);
Allora unOggetto fa riferimento a un Integer. A questo punto cosa puoi fare? Testare che l'oggetto sia realmente un Integer e quindi ottenere un int;
codice:
if (unOggetto instanceof Integer)
int val = (Integer) unOggetto;
Nella seconda riga ho usato quello che si chiama "unboxing" (Java 5). Se non vuoi usare il unboxing dovresti fare:
codice:
int val = ((Integer) unOggetto).intValue ();
Chiaro ora?