乐趣区

关于java:Java反射机制获取运行时类的完整结构

通过反射获取运行时类的残缺构造
Field、Method、Constructor、Superclass、Interface、Annotation
Ø 实现的全副接口
Ø 所继承的父类
Ø 全副的结构器
Ø 全副的办法
Ø 全副的 Field
通过反射获取运行时类的残缺构造
应用反射能够获得:
1. 实现的全副接口
Ø public Class<?>[] getInterfaces()
确定此对象所示意的类或接口实现的接口。
2. 所继承的父类
Ø public Class<? Super T> getSuperclass()
返回示意此 Class 所示意的实体(类、接口、根本类型)的父类的 Class。
3. 全副的结构器
Ø public Constructor[] getConstructors()
返回此 Class 对象所示意的类的所有 public 构造方法。
Ø public Constructor[] getDeclaredConstructors()
返回此 Class 对象示意的类申明的所有构造方法。
Constructor 类中:
Ø 获得修饰符: public int getModifiers();
Ø 获得办法名称: public String getName();
Ø 获得参数的类型:public Class<?>[] getParameterTypes();
4. 全副的办法
Ø public Method[] getDeclaredMethods()
返回此 Class 对象所示意的类或接口的全副办法
Ø public Method[] getMethods()
返回此 Class 对象所示意的类或接口的 public 的办法
Method 类中:
Ø public Class<?> getReturnType() 获得全副的返回值
Ø public Class<?>[] getParameterTypes() 获得全副的参数
Ø public int getModifiers() 获得修饰符
Ø public Class<?>[] getExceptionTypes() 获得异样信息
5. 全副的 Field
Ø public Field[] getFields()
Ø 返回此 Class 对象所示意的类或接口的 public 的 Field。
Ø public Field[] getDeclaredFields()
Ø 返回此 Class 对象所示意的类或接口的全副 Field。
Ø Field 办法中:
Ø public int getModifiers() 以整数模式返回此 Field 的修饰符
Ø public Class<?> getType() 失去 Field 的属性类型
Ø public String getName() 返回 Field 的名称。

  1. Annotation 相干
    Ø get Annotation(Class annotationClass)
    Ø getDeclaredAnnotations()
    7. 泛型相干
    获取父类泛型类型:Type getGenericSuperclass()
    泛型类型:ParameterizedType
    获取理论的泛型类型参数数组:getActualTypeArguments()
    8. 类所在的包 Package getPackage()
    小 结:
    1. 在理论的操作中,获得类的信息的操作代码,并不会常常开发。
    2. 肯定要相熟 java.lang.reflect 包的作用,反射机制。
    3. 如何获得属性、办法、结构器的名称,修饰符等。
    理解更多 java 培训相干技术课程欢送关注小编!

作者:尚硅谷
链接:https://juejin.cn/post/704136…
起源:稀土掘金
著作权归作者所有。商业转载请分割作者取得受权,非商业转载请注明出处。

退出移动版