- - PR -
java1.5のLinkedListについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-08 19:03
こんにちわ。いつも勉強させていただいています。
今までj2sdk1.4.1_03 Eclipse2.1でプログラムを組んでいましたが、 jdk1.5.0_01、Eclipse3.1に変更しました。 そうしたところ、今まではLinkedList.add(Object)でコンパイルできていたものが 警告表示なりました。 APIを見ても、 LinkedList.add(E o)で意味が分からないので、どなたかご教授お願いします。 他に、java5が良くわかるHPなどありましたら。教えてください。よろしくお願いします。 [ メッセージ編集済み 編集者: ジュン 編集日時 2006-02-08 19:04 ] |
|
投稿日時: 2006-02-08 19:18
適当な検索エンジンに「java generics」でお伺いを立ててみましょう。
|
|
投稿日時: 2006-02-08 19:18
http://www.javainthebox.net/laboratory/J2SE1.5/contents.html
まずはこのあたりはどうでしょうか? |
|
投稿日時: 2006-02-08 23:00
お返事ありがとうございます。
今まではObjectを突っ込んでいたのを、 宣言時に型のチェックすると言うことが分かりました。 取得する時に、キャストが要らないというのはわかったのですが、格納する時には、 どちらがいいのでしょうか? LinkedList<Integer> list = new LinkedList<Integer>(); LinkedList<Integer> list2 = new LinkedList<Integer>(); for(int i=0;i<10;i++){ list.add(new Integer(i)); list2.add(i); } for(int i=0;i<10;i++) System.out.println(list.get(i)+" "+list2.get(i)); } |
|
投稿日時: 2006-02-08 23:08
静的に型チェックを行いたい(型の安全性に拘りたい)のであれば、
総称型を使用すべきですが、特に拘らない場合や、 コレクションに型を意識せず追加したい場合は不要です。 どちらが正解というより、適材適所ということです。 ちなみに、コレクションフレームワークなど、 あちこちで総称型が使用されていますが、 利用者側まで総称型で定義しなければ警告となってしまいます。 その場合、@SuppressWarnings("unchecked")という注釈を使用することで、 Eclipseのコンパイラに対して警告の抑制を指示することができますよ。 |
|
投稿日時: 2006-02-08 23:34
ありがとうございます。
何となく分かってきました。 1.4のプログラムで、いじりたくない部分もあるので、 そのまま置いておこうと思います。 治せる部分、治した方が良い部分は変更しようと思います。 ありがとうございました。 |
1