反射有什么作用 java反射機制有什么用


反射有什么作用 java反射機制有什么用

文章插圖
1、Java語言反射提供一種動態鏈接程序組件的多功能方法 。它允許程序創建和控制任何類的對象(根據安全性限制),無需提前硬編碼目標類 。這些特性使得反射 特別適用于創建以非常普通的方式與對象協作的庫 。例如,反射經常在持續存儲對象為數據庫、XML或其它外部格式的框架中使用 。Java reflection 非常有用 , 它使類和數據結構能按名稱動態檢索相關信息,并允許在運行著的程序中操作這些信息 。Java 的這一特性非常強大,并且是其它一些常用語言,如 C、C、Fortran 或者 Pascal 等都不具備的 。
2、但反射有兩個缺點 。第一個是性能問題 。用于字段和方法接入時反射要遠慢于直接代碼 。性能問題的程度取決于程序中是如何使用反射的 。如果它作為程序運行中相 對很少涉及的部分,緩慢的性能將不會是一個問題 。即使測試中最壞情況下的計時圖顯示的反射操作只耗用幾微秒 。僅反射在性能關鍵的應用的核心邏輯中使用時性 能問題才變得至關重要 。
【反射有什么作用 java反射機制有什么用】3、許多應用中更嚴重的一個缺點是使用反射會模糊程序內部實際要發生的事情 。程序人員希望在源代碼中看到程序的邏輯,反射等繞過了源代碼的技術會帶來維護問 題 。反射代碼比相應的直接代碼更復雜,正如性能比較的代碼實例中看到的一樣 。解決這些問題的最佳方案是保守地使用反射——僅在它可以真正增加靈活性的地方 ——記錄其在目標類中的使用 。