基本概念
??理解反射机制的简单例子:通过一个对象可以找到一个类的名称等相关信息
??核心概念:一切的操作都将使用Object完成,类、数组的引用都可以使用Object进行接收
??可以通过反射取得一个类所继承的父类、实现的接口、类中的全部构造方法、全部普通方法及全部属性
Class类
- 所有类实际上都是Class类的实例即Class类是反射机制的源头
- Object类是一切类的父类
- 实例化Class对象的三种方式
- 通过Object类中的
getClass()
方法即new T().getClass()
- 通过
类.class
的形式 - 通过
Class.forName(String 完整的 包.类)
方法,此种方式最为常用
- 可以通过Class类中的
newInstance()
方法进行对象的实例化操作,但是要求类中必须存在无参构造方法,如果类中没有无参构造方法,则必须使用Constructor类完成对象的实例化操作。
反射的应用
- 取得类的结构
- 通过反射调用类中方法
- 通过反射操作数组
- 实现动态代理
- 在程序的开发中使用反射机制并结合属性文件,可与达到程序代码与配置文件相分离的目的。