2011-08-05 8 views
6

私は私が間違って行うとどのように整数に新しい値をキャスト何代わり一覧Javaのコレクション<Object>またはコレクション<?>

List<?> list = new ArrayList<Integer>(); 
... 
list.add(1); //compile error 

の使用リストを試してみてください? 私のプロジェクトでListを使用するかもしれませんか?

+0

リストをリストとして宣言できない理由はありますか? –

+0

試しリストリスト=新しいArrayList (); – nidhin

+0

@nidhin - 生の型を使う悪い考え –

答えて

10

List<?>を意味する一部の種類の一覧ですが、わかりません。正しいタイプのオブジェクトをリストに入れることはできますが、タイプがわからないため、はそのようなリストに何も入れることはできませんnull以外)。

変数をList<Integer>と宣言する以外には、この方法はありません。

+0

「Generic 」を使う時間がありますか?クラスに含まれるオブジェクトの型に関係のないジェネリッククラスの操作ですか? (そして、そのような操作はなぜ孤立して役に立つのでしょうか?) –

+1

はい。たとえば、 'Class 'には、typeパラメータを使わないかなりのメソッドがあります。 'List '(これは 'List <?extends Object>'と同じですが、サイズを取得したり、他のリスト(または非リスト)と比較したり、 'Object'を取り出すことができます。タイプ固有。 –

1
List<Integer> list = new ArrayList<Integer>(); 
... 
list.add(1); 
4
List<Integer> list = new ArrayList<Integer>(); 

ジェネリック型常には同じである必要があります。

1
List<?> list = new ArrayList<Integer>(); 

?何らかの型を意味する場合は、TypeをIntegerとして指定する必要があります。正しい構文は次のようになります。

List<Integer> list = new ArrayList<Integer>(); 
関連する問題