java反射机制

什么是反射

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
一般情况我们new一个对象创建一个对象;使用了反射,我们可以通过一个对象找到一个类的信息。这就大大增强了操作类和对象的灵活性。
另外提一句,Spring框架之所以这么灵活,就是使用了反射。

反射有何用

  • 在运行时判断任意一个对象所属的类;
  • 在运行时构造任意一个类的对象;
  • 在运行时判断任意一个类所具有的成员变量和方法;
  • 在运行时调用任意一个对象的方法;
  • 生成动态代理。

反射为什么能够这么强大

反射的常用类和函数:Java反射机制的实现要借助于4个类:Class,Constructor,Field,Method。
其中class代表的是类对象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象,通过这四个对象我们可以粗略的看到一个类的各个组成部分。其中最核心的就是Class类,它是实现反射的基础。

反射API

链接: https://pan.baidu.com/s/1gfaUCin 密码: 9pqq

应用

  • 工厂模式
  • 动态代理

反射难道就没有缺陷吗

虽然反射很强大,但是反射会破坏Java类的封装,比如会直接获取到私有成员属性。但瑕不掩瑜。

参考

posted @ 2017-12-10 20:28  叶莜落  阅读(540)  评论(0编辑  收藏  举报