• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

java 搞代码 4年前 (2022-01-27) 38次浏览 已收录 0个评论

通过反射获取运行时类的残缺构造
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…
起源:稀土掘金
著作权归作者所有。商业转载请分割作者取得受权,非商业转载请注明出处。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:Java反射机制获取运行时类的完整结构
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址