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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント