Olen onnellinen.

あしたもどこかで NullPointerException。資格試験とかシステム開発の記録だったりなかったり。

SJC-P:ジェネリクス

5.0からの新機能ジェネリクス。
これもしっかり抑えておく。

■ ジェネリクス

  1.  public class GeneTest {
  2.      public static void main(String[] args) {
  3.          GeneBean<String> sBean = new GeneBean<String>();
  4.          sBean.setValue("Homyu");
  5.          System.out.println(sBean.getValue());
  6.      
  7.          GeneBean<Integer> iBean = new GeneBean<Integer>();
  8.          iBean.setValue(5);
  9.          System.out.println(iBean.getValue());
  10.      }
  11.  }
  12.  class GeneBean<T> {
  13.      private T value;
  14.  
  15.      public T getValue() {
  16.          return value;
  17.      }
  18.      public void setValue(T value) {
  19.          this.value = value;
  20.      }
  21.  }




Objectクラスを取り扱ったり、キャストしたりする機会が多少減る。
上の例だとどんなクラスでも扱えるけど、制限することもできる

  1.  public class GeneTest {
  2.      public static void main(String[] args) {
  3.          GeneBean<String> sBean = new GeneBean<String>(); // コンパイル時にエラー!
  4.          sBean.setValue("Homyu");
  5.          System.out.println(sBean.getValue());
  6.      
  7.          GeneBean<Integer> iBean = new GeneBean<Integer>(); // コンパイル時にエラー!
  8.          iBean.setValue(5);
  9.          System.out.println(iBean.getValue());
  10.      }
  11.  }
  12.  class GeneBean<T extends GeneBean> {
  13.      private T value;
  14.  
  15.      public T getValue() {
  16.          return value;
  17.      }
  18.      public void setValue(T value) {
  19.          this.value = value;
  20.      }
  21.  }




StringやIntegerはGeneBeanのサブクラスではないのでだめー。
ジェネリクスについてはJDKのコードとかが参考になるかも。

このエントリーを含むはてなブックマーク | 
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
Copyright © 2008 hydra404 all rights reserved.