查看: 781|回复: 0

[Java项目交流] 什么是 Java反射Reflection

[复制链接]
  • TA的每日心情
    无聊
    2017-4-17 15:52
  • 签到天数: 107 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-5-30 22:24:34 | 显示全部楼层 |阅读模式
    Java反射是可以让我们在运行时获取类的函数、字段、父类、接口等Class内部信息的机制。

    通过反射还可以让我们在运行期实例化对象,调用方法,
    通过调用get/set方法获取变量的值,即使方法或字段是私有的的也可以通过反射的形式调用,
    这种“看透class”的能力被称为内省,这种能力在框架开发中尤为重要。

    有些情况下,我们要使用的类在运行时才会确定,

    这个时候我们不能在编译期就使用它,
    因此只能通过反射的形式来使用在运行时才存在的类(该类符合某种特定的规范,例如JDBC),
    这是反射用得比较多的场景。

    还有一个比较常见的场景就是编译时我们对于类的内部信息不可知,必须得到运行时才能获取类的具体信息。

    比如ORM框架,在运行时才能够获取类中的各个字段,

    然后通过反射的形式获取其字段名和值,存入数据库。

    这也是反射比较经典应用场景之一。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    站长推荐上一条 /1 下一条