Il warning è corretto. Sai cosa è la "erasure"? È la tecnica con cui i generics sono implementati. A runtime non c'è alcun modo di sapere se l'oggetto è un Vector<String>, Vector<Integer> o Vector<QuelloCheTiPare>. I tipi parametrici vengono usati solo per effettuare il type checking a livello di compilazione ma nel bytecode vengono eliminati. Non c'è alcuna informazione, ad esempio nel Vector, che dice che gli elementi sono di un certo tipo. A runtime è solamente un "Vector" e basta.Originariamente inviato da TM-Nite
Vector<downObj> oldList = (Vector<downObj>)listaObj.clone();
warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.Vector<downObj>
Il warning ti dice semplicemente: "guarda che non posso controllare esattamente se il cast è corretto". C'è solo la possibilità di "sopprimere" il warning con una apposita annotazione SuppressWarnings:
codice:@SuppressWarnings("unchecked") Vector<downObj> oldList = (Vector<downObj>)listaObj.clone();
P.S. consiglio: approfondisci meglio i generics...