2012-05-07 13 views
12

Qui di seguito è la mia sintassiL'elenco è un tipo non elaborato. I riferimenti alla Lista tipo generico <E> dovrebbero essere parametrizzato

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 

sto ottenendo un errore di sintassi di:

List is a raw type. References to generic type List<E> should be parameterized.

Si prega di suggerire la soluzione.

+4

Questo è un avviso, non un errore. Questa riga di codice verrà compilata ma javac non eseguirà tutti i controlli di tipo. – Jerome

risposta

7

È necessario dargli il tipo generico corretto, ad es.

List<String> publiesdList = ... 
List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 
27

credo che

List è un tipo grezzo. I riferimenti all'elenco di tipi generici devono essere parametrizzati

non è un errore, ma un avviso.

Capire farmaci generici è un elemento fondamentale se avete intenzione di usare Java in modo da suggerisco che si dovrebbe verificare le pagine del tutorial di Java su questo:

java generics tutorials

Quindi, se si sa che tipo di oggetti vengono memorizzati nell'area publiesdList, di quanto si può fare questo:

List<YourType> synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 

Se ci sono più tipi di oggetti nel proprio elenco di quanto si possa utilizzare un carattere jolly:

List<?> synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 

Oppure, se si desidera solo per sbarazzarsi del l'avviso che è possibile sopprimere in questo modo:

@SuppressWarnings("rawtypes") 
List synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 

quest'ultimo non è raccomandato però.

+0

Perfetto. Ho superato lo stesso problema aggiungendo <> Generico <> alla dichiarazione e Generico () all'istanza nel mio codice. grazie. –

0

Ho avuto gli stessi avvertimenti in Eclipse e basta fare clic sul segnale di avvertimento e ottenere l'opzione di aggiungere un argomento di tipo a Hash, List, Array o cosa hai. grande elenco di discussione qui What is a raw type and why shouldn't we use it?

0

Si può definire "publiesdList" in questo modo:

List<String> publiesdList = new List<String>(); 

L'avviso dissappear.

Problemi correlati