要实现取消呼叫、清除未接来电通知、禁用通知 LED 和其他此类复杂功能,我必须严重依赖 Reflection。从长远来看,它会影响我的应用程序吗?
问问题
2360 次
1 回答
3
反射的主要缺点是
它很慢
反射涉及动态解析的类型,无法执行某些 Java 虚拟机优化。因此,反射操作的性能比它们的非反射对应物要慢,并且应该避免在对性能敏感的应用程序中经常调用的代码部分中。
脆弱的
反射代码在 API 变化面前更加脆弱。
安全问题
您不能允许不受信任的代码使用反射。
测试问题
需要更彻底的测试和调试,因为您将编译时类型检查替换为运行时类型检查。
内部暴露
通过使用反射,您可以访问不允许使用非反射方法使用的私有类成员。使用反射可能会导致意想不到的副作用,这可能会导致代码功能失调并可能破坏可移植性。
在您的情况下,我认为问题应该是缓慢、脆弱和测试问题如果上述问题不打扰您,那么您可以在您的应用程序中自由使用反射。
于 2013-05-27T09:39:32.407 回答