- ベストアンサー
Pleiades4.4でVectorの使用方法について
- Pleiades4.4 LunaのVector機能を利用する際に注意点があります。
- Pleiades4.3 KeplerのVectorサンプルプログラムをPleiades4.4 Lunaで利用するための変更点について質問しています。
- Pleiades4.3 Keplerでは、import java.util.Vectorに警告が出る場合の書き方についても質問しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> このソースをPleiades4.4 Lunaで利用しようとしましたが、コンパイル段階で > エラーとなります。 ……えーと、それ本当にエラーですか? 確かに > 注 変更点) > 1)import java.util.Vectorはコメント化しました。 をやらかすとコンパイルエラーとなりますが、それは addElement() の部分ではなく Vector インスタンスの宣言・生成の部分で出るはずです。 ですからこれは間違った変更です。 さて、ご呈示のままのソースではジェネリックスに対応したものになっておりません。したがって、それに対応するように書き換えなくてはなりませんが…… はっきり言います。このコードは過去の遺物でしかありません。 ここでの addElement() でのようにオブジェクトなら何でも追加できてしまえ、その分値を取り出す時にそのオブジェクトの追加時での型を覚えておく/調べる必要がある、というのが Vector に限らず各種コレクションの問題でした。 それを解消するために導入されたのがジェネリックスという仕組みです。 あなたがご呈示のコードは、そのままではジェネリックスに対応するように書き換えてもジェネリックスの利点が体感できないコードです。 とりあえず表示されたエラーや警告を解決したければ、6 行目を Vector<Object> vector = new Vector<>(); または上記で問題が出るなら Vector<Object> vector = new Vector<Object>(); と書き換えればいいです。しかし、それで得られるものはジェネリックス導入前の苦難に満ちた時代の産物でしかありません。したがって、ジェネリックスで <> 内に Object を入れるのは禁じ手です。 とりあえず、ジェネリックスに対応し、ジェネリックスになると何が嬉しいのかをコメントで追加するように、以下の通り修正してみました。 //================================ import java.util.Vector; class Cvector { public static void main(String args[]){ //ベクトルとその要素を作成する Vector<Integer> vector = new Vector<Integer>(); vector.addElement(new Integer(1)); vector.addElement(new Integer(2)); vector.addElement(new Integer(3)); vector.addElement(new Integer(4)); vector.addElement(new Integer(5)); //ベクトルの要素を表示 System.out.println(vector); //ベクトル要素を挿入する Integer ins = new Integer(42); vector.insertElementAt(ins, 1); System.out.println(vector); //ベクトルから要素を削除する vector.removeElementAt(3); System.out.println(vector); // vector に入るのは Integer だけに制限されている // だから、次はコンパイルできない // vector.addElement(new String("Hello!")); // vector.addElement(new Double(5.0)); } }
お礼
hitomura さま 貴方の、コードでPleiades4.4で実行しました所、旨く実行できました。 有難うございました。
補足
hitomura さま 貴方の、コードでPleiades4.4で実行しました所、旨く実行できました。 有難うございました。