タグ

2012年12月27日のブックマーク (1件)

  • Javaのジェネリクスとリフレクション - プログラマーの脳みそ

    今回のテーマはジェネリクスとリフレクション。Javaのジェネリクスはイレイジャ方式なのでリフレクションでは何も得られないと思ってはいまいか。 public void hoge(List<String> list) {} といったメソッドがあったとして、リフレクションでこのメソッドの情報を得るとしよう。 import java.lang.reflect.*; import java.util.List; public class ReflectionTest { public static void main(String[] args) throws Exception { Method m = ReflectionTest.class.getMethod("hoge", List.class); Type[] types = m.getGenericParameterTypes(); f

    Javaのジェネリクスとリフレクション - プログラマーの脳みそ
    matarillo
    matarillo 2012/12/27
    クラスファイルは1つだから、型の定義時に型パラメータが確定しているものは情報を取れる。List<String>とList<Integer>のクラスファイルを別にしたり、.NET式にしたりすれば実行時にも全部取れたが、それはJava的にナシ。