优缺点
优点
- 反射提高了程序的灵活性和拓展性
- 降低耦合性,提高自适应能力
- 允许程序创建和控制任何类的对象,无需提前硬编码的风格
缺点
- 性能问题:使用反射基本上是一种解释性操作用于字段和方法接入远低于直接编码,普通程序不建议用
- 使用反射回模糊内部逻辑;程序员希望在源代码中看到程序的逻辑,反射绕过了源代码的技术,因而回带来维护的问题,反射代码比相应的直接代码更加复杂
反射的用途
- 允许在使用的时候查看特性信息
- 允许审查集合中的各种类型以及实例化这些类型
- 允许延迟绑定的方法和属性
- 允许在运行时创建新的类型,然后使用这些类型执行一些任务