• Java——反射


      又是一个之前没有好好学的点,落下的东西实在太多了,希望来得及。

      书中写到,反射机制可以用来:1、在运行时分析类的能力。2、在运行时查看对象。3、实现通用的数组操作代码。4、利用Method对象,这个对象很像C++中的函数指针。

    Class类

      程序运行期间,系统始终为所有对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应方法执行。

      Object类中的getClass()方法就可返回这样一个保存这些信息的Class类的实例。一个Class对象表示一个特定类的属性。最常用的Class方法是getName方法,这个方法会返回该类的名字,如果类在一个包里,那么包名也会是类名的一部分。

      还可以通过Class的forName静态方法,获得类名对应的Class对象,即Class.forName(className)。若className不是类名或接口名,则该方法将会抛出一个异常。因此,使用该方法时,需要提供异常处理方法。

      getClass().newInstance()也是一个获取类实例的方法。

    利用反射分析类的能力

      java.lang.reflect包里有Field、Method、Constructor三个类,分别描述类的域、方法和构造器。三个类都有getName方法,用于返回类的名称。

      Field类可以通过getType方法,用来返回描述域所属类型的Class对象。Method,Constructor类都有能报告参数的方法。Method的方法更加丰富,还能报告方法的返回值、方法的访问关键字。

      Class类中的getFields、getMethods、getConstructors方法也可以返回类提供的public域、方法和构造器数组。getDeclareFields、getDeclareMethods、getDeclareConstructors方法可返回类中声明的所有域、方法和构造器。

  • 相关阅读:
    测试文件报告
    Bug Variations
    阶段一 问答题2
    阶段一 问答题1
    HeapSort
    Git系列 (01):git clone 速度太慢解决方法
    ES6系列 (03):链判断运算符和Null 判断运算符
    ES6系列 (02):解构赋值
    ES6系列 (01):箭头函数this指向问题
    我忘却了所有,抛却了信仰,舍弃了轮回,只为,那曾在佛前哭泣的玫瑰,早已失去旧日的光泽。
  • 原文地址:https://www.cnblogs.com/dloooooo/p/13758369.html
Copyright © 2020-2023  润新知