2015年7月1日星期三

Java反射工具集合

Class:

instanceof与isAssignableFrom方法的区别:
Clazz1.isAssignableFrom(Clazz2): 判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口,Clazz1为父。
object instanceof Clazz: 判断object是不是Clazz的实例。


泛型:
class.getGenericSuperclass(): 返回Class 所表示的实体(类、接口、基本类型或 void)的直接超类的Type;
超类转化为ParameterizedType, getActualTypeArguments()返回表示此类型实际类型参数的Type对象的数组, [0]就是这个数组中第一个了,简而言之就是获得超类的泛型参数的实际类型。
例如: 
SubParam extends Param<Integer, Long>       
 (ParameterizedType)(SubParam.class.getGenericSuperclass()).getActualTypeArguments()-->[Integer, Long]

1 条评论: