反射小结
# 反射小结
小结下。
# 使用反射的好处和缺点
优点如下:
- 解耦:将配置剥离出来,降低耦合度
- 灵活:面对需求变更时,可以灵活地实例化不同对象
- 易维护:只需修改配置文件即可完成程序的功能改动
缺点:
复杂:需要一定的学习成本
破坏类的封装性:可以强制访问 private 修饰的信息。常规情况下,确实应该封装;但反射是一种非常规的用法,使用反射,首先代码非常繁琐,其次,它更多地是给工具或者底层框架来使用,目的是在不知道目标实例任何信息的情况下,获取特定字段的值。
性能损耗:在直接 new 对象并调用对象方法和访问属性时,编译器会在编译期提前检查可访问性,如果尝试进行不正确的访问,IDE 会提前提示错误,例如参数传递类型不匹配,非法访问 private 属性和方法。
而在利用反射操作对象时,编译器无法提前得知对象的类型,访问是否合法,参数传递类型是否匹配。只有在程序运行时调用反射的代码时才会从头开始检查、调用、返回结果,JVM 也无法对反射的代码进行优化。
在单次调用反射的过程中,性能损耗可以忽略不计。如果程序的性能要求很高,那么尽量不要使用反射。
# 参考
- 黑马 Java 57 期\阶段一 Java 基础\09-基础加强\09-基础加强\第 2 节 反射
- Java 反射是什么?看这篇绝对会了! (opens new window)
- JavaWeb(2):初识反射 - 知乎 (opens new window)
- 浅谈反射机制 - 知乎 (opens new window)
- java 的反射到底是有什么用处?怎么用? - 知乎 (opens new window)
- 反射 - 廖雪峰的官方网站 (opens new window)
上次更新: 2024/10/1 18:45:09