Java講座

知っていると便利な章
4.11. ひと工夫して使いやすくする
『目的』

キャストの煩雑さを取り除きましょう。

『Before』

要素を取り出すときにいちいちキャストしないといけないのが面倒ですよね。

ArrayListから要素を取り出しています。
List list = new ArrayList();
list.add("hoge");
String str = (String) list.get(0); /* キャストして取り出す */


『After』

特定の型専用のコレクションを作ってしまいましょう。

これはString専用のArrayListです。
public final class ArrayStringList {

    private final List elStrings = new ArrayList();
    
    public void add(String str) {
        elStrings.add(str);
    }
    public String get(int index) {
        return (String) elStrings.get(index);
    }
    // 他に必要なメソッドあれば適宜追加
}
このクラスを使って要素を取り出してみます。
ArrayStringList list = new ArrayStringList(); /* String 専用 */
list.add("hoge");

String str = list.get(0);  /* キャスト不要! */
キャストせずに要素を取得できるようになりました。

『まとめ』

コレクションに同一のクラスのみ保持するのであれば、 専用のコレクションクラスを作ると便利なこともあります。 扱いたい型が増えるたびにいくつも作らなければいけないという欠点もありますが。

実は5.0ではGenericsという機能を使うことでキャストせずに済みます・・・
前のページ   次のページ

当ページ・当社へのご意見やご感想があればお手数ですが「お問い合わせ」までお願いいたします。
当社への就職をお考えの方は「採用情報ページ」までお願いいたします。
C言語を学びたい方は「C言語講座」もどうぞ。