要实现诸如取消呼叫,清除未接来电通知,禁用通知LED和其他此类复杂功能之类的事情,我必须在很大程度上依赖于Reflection。从长远来看,它会影响我的应用吗?
答案 0 :(得分:3)
反思的主要缺点是
很慢
反射涉及动态解析的类型,无法执行某些Java虚拟机优化。因此,反射操作的性能低于非反射操作,应避免在对性能敏感的应用程序中频繁调用的代码段中。
<强>易碎强>
面对API更改,反射代码更加脆弱。
安全问题
您不能允许不受信任的代码使用反射。
测试问题
需要进行更全面的测试和调试,因为您正在使用运行时类型检查替换编译时类型检查。
内部曝光
通过使用反射,您可以访问不允许使用非反射方法的私有类成员。反射的使用可能导致意想不到的副作用,这可能导致代码功能失常并可能破坏可移植性。
在你的情况下,我认为问题应该是缓慢,脆弱和测试问题 如果上述问题不打扰您,那么您可以在应用程序中自由使用反射。