クラスやメソッドに付加して定義することで
汎用的なクラスをコンパイルする時に特定の型に対応させるための機能。
通常は使用目的や意味を表すTypeやElementの頭文字T、Eを用います。
難しいことは抜きにして書くことこんな感じになります。
class Demo<T>{
private T value;
//コンストラクタ
Demo(T val){
this.value = val;
}
//値の設定
public void setValue(T val) {
this.value = val;
}
//値の取得
public T getValue() {
return value;
}
}
class Example{
public static void main(String[] args) {
Demo<String> d1 = new Demo<String>("こんにちは");
System.out.println(d1.getValue());
d1.setValue("文字列");
System.out.println(d1.getValue());
Demo<Integer> d2 = new Demo<<nteger>(987654);
System.out.println(d2.getValue());
d2.setValue(123456);
System.out.println(d2.getValue());
}
}
===== 実行結果 =====
こんにちは
文字列
987654
123456
====================
Demo
String型であっても、Integer型であってもキャスト(型変換)が不要で
指定した型の値を設定・取得することができるようになります。
† 地球の末路!? †
【このカテゴリーの最新記事】
-
no image
-
no image