[解決済み] ベクターを使用したJavaの警告:add(E)の未チェックの呼び出し
2022-02-11 06:29:58
質問
問題のあるコードのビット
Vector moves = new Vector();
moves.add(new Integer(x));
エラーです。
ConnectFour.java:82: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector moves.add(new Integer(x));
このようなエラーの場合、どれくらいの情報が必要なのかよくわからないのですが......。
解決方法は?
問題は、上記のコードで ジェネリックス .
以下のようにするとうまくいきます。
Vector<Integer> moves = new Vector<Integer>();
move.add(new Integer(x));
の中の型名は
<>
(の場合)。
Vector
の場合、型パラメータ
E
は、コンパイラにどのようなタイプのオブジェクトを期待すべきかを伝えます。
指定された型のオブジェクトを追加しようとした場合、例えばこの場合は
String
に、そして
Vector<Integer>
の場合、コンパイル時にエラーが発生し、期待された型ではないオブジェクトの型が追加されていることが示されます。
ということで、なるべく
Vector
クラスがあります。より多くの目的のために
List
というような
ArrayList
から
Java Collections フレームワーク
で十分であり、より良いパフォーマンスである。
編集
ジェネリックに関する質問とは直接関係ありませんが、Adam Paynterがコメントでauto-boxingの使用について良い点を挙げています。
Java 5以降、プリミティブとそのラッパークラス、例えば
int
と
Integer
は、必要に応じて自動的に相互変換されます。
そのため、"A "として指定された値を、"B "として指定された値に追加することが可能です。
int
または
int
リテラルを期待するクラスに
Integer
:
Vector<Integer> v = new Vector<Integer>();
v.add(5); // Not necessary to use an Integer value.
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] Javaにおけるチェック済み例外とチェックされていない例外の理解
-
[解決済み] チェックされていないキャストの警告に対処するにはどうすればよいですか?
-
[解決済み] 浮動小数点以下の0を削除して文字列に変換する方法
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件