public <U> Class<? extends U> asSubclass(Class<U> clazz)
这是Java.lang.Class中的一个方法,作用是将调用这个方法的class对象转换成由clazz参数所表示的class对象的某个子类。用于窄化未知的Class类型的范围(class.foname()的返回值类型是Class<?>,所以必要的时候可以窄化它)
举例来说,
List<String> strList = new ArrayList<String>();
Class<? extends List> strList_cast = strList.getClass().asSubclass(List.class);
上面的代码将strList.getClass()获取的class对象转换成Class<? extends List>
isAssignableFrom
用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口