# 反射

### 什么是反射，有什么作用和应用？

JAVA反射机制是在运行状态中, 对于任意一个类, 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.

#### 主要作用：

* 运行时取得类的方法和字段的相关信息。
* 创建某个类的新实例(.newInstance())
* 取得字段引用直接获取和设置对象字段，无论访问修饰符是什么。

**应用**

ButterKnife 在 bindView 时，就是通过反射来加载Activity对应的binding类，并创建对应类的实例来给Activity的view赋值。
