2012-05-07 12 views
12

パラメータ化する必要があります私の構文は、私がの構文エラー取得していますリストは生の型です。ジェネリック型リスト<E>への参照は、以下

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList); 

です:

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

をソリューションを提案してください。

+4

これは警告であり、エラーではありません。このコード行はコンパイルされますが、javacはすべての型チェックを実行しません。 – Jerome

答えて

7

あなたに正しい一般的なタイプを与える必要があります。

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

私は

リストが生タイプであると信じています。ジェネリック型の参照は、パラメータ化されている必要があります。

はエラーではありませんが、警告です。あなたは、Javaを使用することを計画している場合は、ジェネリックを理解

が基礎となるものですので、私はあなたがこの程度のJavaのチュートリアルのページをチェックアウトする必要がありますことを示唆している:

java generics tutorials

ですから、中に含まれるオブジェクトの種類を知っていればpubliesdList、あなたはこれを行うことができるより:

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

ワイルドカードを使用することができるよりもあなたのリスト内のオブジェクトの複数のタイプがある場合:

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

それともあなたはちょうどあなたがこのようにそれを抑制することができるよりも、警告を取り除きたい場合:

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

後者は、しかし、お勧めしません。

+0

パーフェクト。私は、Generic <>を宣言に追加し、Generic ()をコード内でインスタンス化することで、この同じ問題を解決しました。ありがとう。 –

0

Eclipseで同じ警告が表示されました。警告記号をクリックして、型引数をハッシュ、リスト、配列に追加するオプションを取得します。ここでの議論の ビッグリストWhat is a raw type and why shouldn't we use it?

0

あなたはこの方法を "publiesdList" を定義することができます。

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

警告がdissappearます。

関連する問題