こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ArrayListクラスのインスタンスの宣言について

まず初めに一言。
今自分が使用している本は3年ぐらいのモノです。
なので、宣言の仕方が変わっているかもしれません。
その上で質問です。
まず、ソースコードを貼り付けます。(JSP)

<%@ page language="java" contentType="text/html; charset=Shift_JIS"
import=java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>配列の挿入、削除(ArrayList)</title>
</head>
<body>
<%
//配列を定義する
ArrayList array = new ArrayList();
//値をセットする
array.add("1111");
array.add("2222");
array.add("3333");

//配列の値を表示する
for (int i=0; i<array.size(); i++) {
System.out.println("<p>" + (i+1) + "番目:" + array.get(i));
}
//値を挿入する
array.add(2, "9999");
//3番目の値を削除する
array.remove(2);

//変更後の配列の値を表示する
for (int i=0; i<array.size(); i++) {
out.println("変更後" + (i+1) + "番目:" + array.get(i));
}
%>
</body>
</html>

ArrayListクラスのインスタンスの宣言はどこか間違っているでしょうか。
Eclipse曰く、
『ArrayListはraw型です。ArrayListの参照はパラメータ化する必要があります。』
という警告が表示されます。
エラーでは無いみたいなのですが、やはり警告されている状態を放っておくのはあまり気持ちいいモノではありません。
そこで、質問です。
この警告を消す方法はあるのでしょうか。
もし、あるのでしたら教えて頂けると幸いです。
どうぞ宜しくお願い致します。

投稿日時 - 2009-03-25 21:25:31

QNo.4826791

困ってます

質問者が選んだベストアンサー

これは、Java5.0で追加されたジェネリックスに関する警告です。
ジェネリックスはC++のテンプレートと似たような機構で、特定の型の要素のみを持つリストなどが定義できます。詳しくは参考URLなどを参照して下さい。

このケースでは文字列のリストのようですから、下記の様になるかと。
------------------------------------------------------------
List<String> array = new ArrayList<String>();
------------------------------------------------------------

参考URL:http://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Generics/Generics.html

投稿日時 - 2009-03-25 22:03:47

お礼

貴重なアドバイスありがとうございます。
試したら、警告が全部消えました。
なるほど、Java5からこうなったんですね。
参考URLといい、いろいろと勉強になりました。

投稿日時 - 2009-03-25 22:45:14

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問