0

int 型のジェネリック LinkedList を定義しようとしていますが、コンパイル エラーが発生します。

List<int> I = new LinkedList<int>();
4

3 に答える 3

3

これを行うには、ラッパー クラスを使用する必要があります。

  List<Integer> I = new LinkedList<Integer>();

このリンク リストにを挿入できます。これは、オートボックス化により、このリンク リストからオブジェクトintが自動的に作成され、LinkedList に追加されるためです。Integerint

于 2013-10-10T02:22:29.683 に答える
1

プリミティブ型をジェネリック型として使用することはできません。あなたが本当にそれをしたいのであれば、それがラッパークラス(IntegerFloat、など)の目的です。次のように実行できます。

List<Integer> I = new LinkedList<Integer>();

int自動ボクシングのため、リストに s を追加することはできます。intが必要な状況でを使用しようとすると、で自動的にInteger新しいIntegerが作成されInteger.valueOf、代わりに使用されます。

また、Java 7 では、ダイヤモンド演算子を使用して、これを使用できます。

List<Integer> I = new LinkedList<>();

入力が速くなることを除いて、これには利点はありません。

于 2013-10-10T02:23:25.820 に答える
1

これが、プリミティブを型引数として使用できないため、Java にプリミティブ ラッパー クラスがある理由の 1 つです。あなたの場合、必要なものInteger

List<Integer> I = new LinkedList<Integer>();

Java 7 以降では、型パラメーターを繰り返す必要はありません。

List<Integer> I = new LinkedList<>();

参照:ジェネリック

于 2013-10-10T02:23:27.357 に答える