Java API>java.lang.Class阅读的心得——Class.asSubclass分析
2015-05-21 17:54
585 查看
这个函数的作用是将调用该方法的Class对象转换成clazz对象对应类的某个子类,注意是某个子类,clazz对应类的子类也包括该类本身.
转换成功返回对clazz子类的引用
该方法的使用场合一般是在对对象的类别不清楚而我们本身对对象的类型有有所限制的时候。例如Class.forName("xxxx")返回的类是未知的而我们又希望获得需要的类对象,这时候就可以使用asSubclass方法了
代码如下
Expect expect = Class.forName("XXXX").asSubclass(Expect .class).newInstance();
Expect--->期望获得的类
转换成功返回对clazz子类的引用
该方法的使用场合一般是在对对象的类别不清楚而我们本身对对象的类型有有所限制的时候。例如Class.forName("xxxx")返回的类是未知的而我们又希望获得需要的类对象,这时候就可以使用asSubclass方法了
代码如下
Expect expect = Class.forName("XXXX").asSubclass(Expect .class).newInstance();
Expect--->期望获得的类
相关文章推荐
- java.lang.Class.asSubclass()方法实例
- Java反射API研究(3)——java.lang.Class<T>
- 关于 Constructor[] java.lang.Class.getConstructors() API 的使用
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI(***
- Caused by: java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
- Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but
- java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI ***
- java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.<init>(Ljava/lang/Class;)V
- Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V的解决办法
- java.lang.ClassLoader中方法getResourceAsStream与ClassName.class.ResourceAsStream方法两者路径的区别
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androi
- java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androidutil.Attri
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- java (web)异常分析java.lang.ClassNotFoundException: Aservlet
- java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader...
- java.lang.ClassCastException: android.app.Application cannot be cast to serialport_api.sample.App问题
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>
- java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI ***
- java.lang.UnsupportedClassVersionError原因分析和解决办法