web-dev-qa-db-fra.com

La liste est un type brut. Les références au type générique List <E> doivent être paramétrées

Ci-dessous ma syntaxe 

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

Je reçois une erreur de syntaxe de: 

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

S'il vous plaît suggérer la solution.

13
Sachin Singh

Je crois que

La liste est un type brut. Les références au type générique List doivent être paramétrées

n'est pas une erreur, mais un avertissement.

Comprendre les génériques est une pierre angulaire si vous envisagez d'utiliser Java. Je vous suggère donc de consulter les pages de didacticiels de Java à ce sujet:

Tutoriels sur les génériques Java

Donc, si vous savez quel type d’objets est contenu dans publiesdList, vous pouvez le faire:

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

S'il existe plusieurs types d'objets dans votre liste, vous pouvez utiliser un caractère générique:

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

Ou si vous voulez juste vous débarrasser de l'avertissement, vous pouvez le supprimer comme ceci:

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

ce dernier n'est toutefois pas recommandé.

29
Adam Arold

Vous devez lui donner le type générique correct, par exemple.

List<String> publiesdList = ...
List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
7
Peter Lawrey

Vous pouvez définir "liste publique" de cette façon:

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

L'avertissement disparaîtra.

0
Oleg Hmelnits

J'ai eu les mêmes avertissements dans Eclipse et il suffit de cliquer sur le panneau d'avertissement pour pouvoir ajouter un argument de type au hachage, à la liste, au tableau ou à ce que vous avez .. .. Grande liste de discussion ici Qu'est-ce qu'un type brut et pourquoi ne devrions-nous pas l'utiliser?

0
Douglas G. Allen