Java > リフレクション
更新日
2014-12-14
広告
リフレクションを利用することで、クラスのフィールド変数にアクセスしたり、メソッドを呼び出したりできます。
ジェネリクス型を調べる方法
あるクラスのフィールド変数がListやSetなどの場合、そのgenerics型を知りたい場合を調べることができます。以下はサンプルコードです。クラス(obj)が、"dataList"という名前のList型変数を持つ場合の例です。Class c = obj.getClass(); Field field = c.getField("dataList"); ParameterizedType paramType = (ParameterizedType) field.getGenericType(); Class<?> paramCls = (Class>) paramType.getActualTypeArguments()[0]; if (Integer.class.equals(paramCls)) { // do something } else if { }
変数fieldの型は java.lang.reflect.Field です。genericsの型は、paramCls変数に代入されます。最後に、ジェネリクス型がInteger型かどうかで判定しています。
上記プログラムは,クラスで定義しているフィールド変数が、generics型を指定していない場合に、ClassCastExceptionを投げます。
広告
お問い合わせは sweng.tips@gmail.com まで。