普陀微信网站建设,望牛墩东莞网站建设,徐州有哪些互联网公司,网站反链建设Reflect在文档中的位置#xff1a; 文档链接#xff1a;https://docs.oracle.com/javase/8/docs/api/index.html 用于获取类或对象的反射信息。
常用的反射机制重要的类#xff1a;
java.lang.Class#xff1a;整个字节码#xff0c;代表一个类型。包含了以下三块内容 文档链接https://docs.oracle.com/javase/8/docs/api/index.html 用于获取类或对象的反射信息。
常用的反射机制重要的类
java.lang.Class整个字节码代表一个类型。包含了以下三块内容 java.lang.reflect.Nethodmethod的字节码 java.lang.reflect.Constructor构造方法的字节码 java.lang.reflect.Field属性相关的字节码。注意与local_variable的区分。
作用 可以通过反射机制实现OCP开闭原则即对扩展开发对修改关闭。框架中常用让程序更加灵活获取Class的三种方法 静态方法 forName()的执行会加载该类。即该类的静态代码块会执行一次。 比如获取String的字节码(异常处理ClassNotFoundException)
Class strCls Class.forName(java.lang.String);另外两种获取Class的方法
// 通过实例方法getClass()获取(getClass是Object的方法)
Class strCls abc.getClass();
// 通过静态熟悉获取
Class strCls String.class
Class intCls int.class;
Class dateCls Date.class;
Class doubleCls double.class;
// ...Class常用方法
methodsdescribenewInstance创建一个该类型的实例对象(Creates a new instance of the class represented by this Class object.)getFields获取该类中所有public的属性getDeclaredFields获取该类中所有的属性getDeclaredMethods获取类的方法实例方法、静态方法等getDeclaredMethod获取类的指定方法getDeclaredConstructors获取构造方法getDeclaredConstructor获取指定参数的构造方法
Field常用方法
methodsdescribegetModifiers获取当前属性的修饰符类型的int值getType获取当前属性的类型getName获取当前属性的keyset(obj, attrStr)设置当前类实例属性的值。egobj为当前类的实例对象get(obj)获取当前类实例属性的值
Modifier常用方法
methodsdescribetoString把修饰符类型的int值转换为字符串。default-0、public-1、private-2、protected-4、static-8、final-16
Method常用方法
methodsdescribeinvoke(obj, args)执行当前的方法返回值等同于被反射的调用方法的返回值 invoke在被调用时要注意剩余参数的匹配。paramterType[] - new Type[] {xxx, yyy} Constructor常用方法
methodsdescribenewInstance(Object… params)执行指定的构造方法创建对象
注解Annotation 一种引用类型和普通的类相似也是生成xxx.class文件并且可以互相引用。比如注解也可以作用于注解上。一般用于校验等具体用法待后续补充
元注解Target、Retention Target注解作用于那些类型上 Retention注解作用在那个阶段上。源码、Class、Class 反射机制发现 JDK内置注解 Deprecated表示当时被注解的目标已过时 Override: 只能用在方法上编译阶段和运行阶段无关. 重写父类的方法。标识性注解