|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
domanda su Cast Java
Castizzando una variabile il compilatore non da nessun avviso ma se ci sono problemi si solleva logicamente la ClassCastException.
Quando però vado a castizzare un Object proveniente dal metodo readObject() di uno stream in compilazione mi appare il seguente avviso: Note: java uses unchecked or unsafe operations Note: Recompile with -Xlint:unchecked for details. compilando warning: [unchecked] unchecked cast found: java.lang.Object required:...........................ecc Come mai castizzando da uno stream si ha l' avviso mentre normalmente no? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Il warning in questo caso è inevitabile (salvo sopprimerlo con una apposita annotazione) perché il cast è tale per cui non può essere controllato a runtime (ricordati che i generics sono implementati tramite "erasure" e quindi a runtime non si può stabilire se l'oggetto è realmente ABC<XYZ>).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
nell' ultimo caso è successo proprio con i generici,però capita anche utilizzando String o altri Oggetti.
ecco lo fa anche con questa porzione di codice HashMap<String,char[]>mappa=(HashMap<String,char[]>)out.readObject(); si utilizzano sempre i generici ma non a modo dei template del C. Ultima modifica di nuovoUtente86 : 07-06-2007 alle 00:27. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
cosa vuol dire "erasure" ?
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
La "erasure" è il nocciolo, per così dire, dei generics. È il processo per cui il compilatore rimuove tutte le informazioni relative ai generics nel bytecode generato.
http://java.sun.com/docs/books/tutor...s/erasure.html http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:43.