2013-05-27 54 views
1

要實現諸如取消呼叫,清除未接來電通知,禁用通知LED和其他此類複雜功能,我必須嚴重依賴Reflection。它會長期影響我的應用程序嗎?在android中使用反射的缺點?

+0

以何種方式可能呢折磨你的應用程序? – Blackbelt

+1

你需要更加具體。除了「反射速度很慢,每秒做幾次,你的應用可能會感覺遲鈍」之外,不可能回答這樣一個普遍的問題。 – britzl

回答

3

refelections的主要缺點是

它是緩慢

反射涉及動態解析的類型,某些Java虛擬機的優化不能進行。因此,反射操作的性能要比非反射操作的性能要差,應該在性能敏感的應用程序中頻繁調用的代碼段中避免。

脆弱

反光代碼是在API變化的臉更脆弱。

安全問題

你不能讓不信任的代碼使用反射。

測試問題

更全面的測試和調試,因爲要更換編譯時類型與運行時類型檢查檢查是必需的。塔內件

曝光通過使用反射,你可以訪問哪些是不允許使用非反射的方法來使用私有類成員。反射的使用可能會導致意想不到的副作用,這可能導致代碼功能失常並可能破壞可移植性。

在你的情況下,我認爲問題應該是,緩慢,脆弱和測試問題 如果上述問題不打擾你,那麼你可以自由地在你的應用程序中使用反射。

link1link2link3