当前位置: 首页 > 后端技术 > Java

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

时间:2023-04-01 16:58:46 Java

通过反射获取运行时类的完整结构Field,Method,Constructor,Superclass,Interface,Annotation?所有接口实现?继承父类?所有构造函数?所有方法?AllFields通过反射获取运行时类的完整结构利用反射获取:1.所有实现的接口?publicClass[]getInterfaces()确定该对象所代表的类或接口实现的接口。2.继承父类?publicClassgetSuperclass()返回代表该Class所代表的实体(类、接口、基本类型)的父类的Class。3.所有构造函数?publicConstructor[]getConstructors()返回该Class对象所代表的类的所有公共构造函数。?publicConstructor[]getDeclaredConstructors()返回该Class对象所代表的类声明的所有构造函数。在Constructor类中:?获取修饰符:publicintgetModifiers();?获取方法名:publicStringgetName();?获取参数类型:publicClass[]getParameterTypes();4.所有方法?publicMethod[]getDeclaredMethods()返回Class对象所代表的类或接口的所有方法?publicMethod[]getMethods()返回Class对象所代表的类或接口的公共方法在Method中类:?公共类<?>getReturnType()获取所有返回值?publicClass[]getParameterTypes()获取所有参数?publicintgetModifiers()获取修饰符?publicClass[]getExceptionTypes()获取异常信息5.所有Field?publicField[]getFields()?返回该Class对象所代表的类或接口的publicField。?publicField[]getDeclaredFields()?返回该Class对象所代表的类或接口的所有Field。?在Field方法中:?publicintgetModifiers()以整数形式返回该Field的修饰符?publicClassgetType()获取Field的属性类型?publicStringgetName()返回Field的名称。注解相关?getAnnotation(ClassannotationClass)?getDeclaredAnnotations()7.泛型相关获取父类泛型类型:TypegetGenericSuperclass()泛型类型:ParameterizedType获取实际泛型类型参数数组:getActualTypeArguments()8.类所在的PackagePackagegetPackage()总结:1、在实际操作中,获取类信息的操作代码并不常开发。2、必须熟悉java.lang.reflect包的功能和反射机制。3、如何获取属性、方法、构造函数、修饰符等名称。了解更多java培训相关技术课程,欢迎关注小编!作者:尚硅谷链接:https://juejin.cn/post/704136...来源:稀土掘金版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。