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