17

以下は私の構文です

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

次の構文エラーが発生します。

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

解決策を提案してください。

4

4 に答える 4

40

私は信じている

リストは生の型です。ジェネリック型リストへの参照はパラメータ化する必要があります

エラーではなく、警告です。

ジェネリックを理解することは、Java を使用する予定がある場合の基礎となるため、これに関する Java のチュートリアル ページを確認することをお勧めします。

Javaジェネリックのチュートリアル

したがって、 に含まれるオブジェクトのタイプがわかっている場合はpubliesdList、次のようにできます。

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

リストに複数のタイプのオブジェクトがある場合は、ワイルドカードを使用できます。

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

または、警告を取り除きたいだけの場合は、次のように抑制できます。

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

ただし、後者は推奨されません。

于 2012-05-07T22:01:02.247 に答える
8

正しいジェネリック型を指定する必要があります。

List<String> publiesdList = ...
List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
于 2012-05-07T06:23:20.937 に答える
0

Eclipse で同じ警告が表示されたので、警告記号をクリックして、ハッシュ、リスト、配列などに型引数を追加するオプションを取得します。ここでの議論の大きなリスト生の型とは何ですか?なぜそれを使用すべきではないのですか?

于 2014-05-30T01:26:06.903 に答える