Javaのジェネリクス型の使い方
Java1.5からジェネリクスという仕組みができました。
以下はジェネリクス定義を使用したSample2クラスの例です。StringでもIntegerでも渡せるようになっています。
public class Sample1 {
public static void main(String[] args) {
Sample2<String> test1 = new Sample2<String>("aaa");
System.out.println(test1.get());
Sample2<Integer> test2 = new Sample2<Integer>(34);
System.out.println(test2.get());
}
}
// ジェネリクス
class Sample2<T>{
private T name;
Sample2(T name){
this.name = name;
}
public T get(){
return name;
}
}
クラス名の後に<T>というように書きます。TはSでもなんでもいいですが、慣例でTと書くようです。
Tはどのクラスでも可能なので、StringもIntegerも可能になります。
継承したクラスをジェネリクスの型に指定してみます。
public class Sample1 {
public static void main(String[] args) {
Sample3<Child> t = new Sample3<Child>();
Child child = new Child();
child.str = "aiueo";
t.set(child);
System.out.println(t.get().str);
}
}
class Sample3<T>{
private T name;
Sample3(){}
public T get(){
return name;
}
public void set(T name){
this.name = name;
}
}
// サブクラス
class Parent{
public String str;
}
// 親クラス
class Child extends Parent{}
結果は以下のようになります。
aiueo

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント