SJC-P:ジェネリクス
5.0からの新機能ジェネリクス。
これもしっかり抑えておく。
■ ジェネリクス
Objectクラスを取り扱ったり、キャストしたりする機会が多少減る。
上の例だとどんなクラスでも扱えるけど、制限することもできる
StringやIntegerはGeneBeanのサブクラスではないのでだめー。
ジェネリクスについてはJDKのコードとかが参考になるかも。
これもしっかり抑えておく。
■ ジェネリクス
- public class GeneTest {
- public static void main(String[] args) {
- GeneBean<String> sBean = new GeneBean<String>();
- sBean.setValue("Homyu");
- System.out.println(sBean.getValue());
- GeneBean<Integer> iBean = new GeneBean<Integer>();
- iBean.setValue(5);
- System.out.println(iBean.getValue());
- }
- }
- class GeneBean<T> {
- private T value;
- public T getValue() {
- return value;
- }
- public void setValue(T value) {
- this.value = value;
- }
- }
Objectクラスを取り扱ったり、キャストしたりする機会が多少減る。
上の例だとどんなクラスでも扱えるけど、制限することもできる
- public class GeneTest {
- public static void main(String[] args) {
- GeneBean<String> sBean = new GeneBean<String>(); // コンパイル時にエラー!
- sBean.setValue("Homyu");
- System.out.println(sBean.getValue());
- GeneBean<Integer> iBean = new GeneBean<Integer>(); // コンパイル時にエラー!
- iBean.setValue(5);
- System.out.println(iBean.getValue());
- }
- }
- class GeneBean<T extends GeneBean> {
- private T value;
- public T getValue() {
- return value;
- }
- public void setValue(T value) {
- this.value = value;
- }
- }
StringやIntegerはGeneBeanのサブクラスではないのでだめー。
ジェネリクスについてはJDKのコードとかが参考になるかも。
| ホーム |



