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

來源:時尚少女範 2.92W
反射有什麼作用 java反射機制有什麼用

1、Java語言反射提供一種動態連結程式元件的多功能方法。它允許程式建立和控制任何類的物件(根據安全性限制),無需提前硬編碼目標類。這些特性使得反射 特別適用於建立以非常普通的方式與物件協作的庫。例如,反射經常在持續儲存物件為資料庫、XML或其它外部格式的框架中使用。Java reflection 非常有用,它使類和資料結構能按名稱動態檢索相關資訊,並允許在執行著的程式中操作這些資訊。Java 的這一特性非常強大,並且是其它一些常用語言,如 C、C++、Fortran 或者 Pascal 等都不具備的。

2、但反射有兩個缺點。第一個是效能問題。用於欄位和方法接入時反射要遠慢於直接程式碼。效能問題的程度取決於程式中是如何使用反射的。如果它作為程式執行中相 對很少涉及的部分,緩慢的效能將不會是一個問題。即使測試中最壞情況下的計時圖顯示的反射操作只耗用幾微秒。僅反射在效能關鍵的應用的核心邏輯中使用時性 能問題才變得至關重要。

3、許多應用中更嚴重的一個缺點是使用反射會模糊程式內部實際要發生的事情。程式人員希望在原始碼中看到程式的邏輯,反射等繞過了原始碼的技術會帶來維護問 題。反射程式碼比相應的直接程式碼更復雜,正如效能比較的程式碼例項中看到的一樣。解決這些問題的最佳方案是保守地使用反射——僅在它可以真正增加靈活性的地方 ——記錄其在目標類中的使用。

熱門標籤