反射的原理與「晚期綁定/動態綁定」類似,而非早期綁定。 反射在執行時才解析類別結構、檢查權限、進行型別轉換與調用,繞過了編譯期的靜態檢查,因此具備極大的靈活性,但效能較低、破壞封裝、編譯期無法發現錯誤。
| 特性 | 早期綁定 (一般調用) | 反射調用 |
|---|---|---|
| 解析時間 | 編譯期 / 類載入期 | 執行期 |
| 效能 | 極高 (JIT 內聯優化) | 較低 (權限檢查、型別轉換、無法內聯) |
| 型別安全 | 編譯期保證 | 執行期檢查,可能拋出異常 |
| 靈活度 | 低 (需知道具體類別) | 極高 (字串驅動、框架核心) |
簡言之:早期綁定 = 靜態、快、安全;反射 = 動態、慢、靈活。兩者屬於光譜兩端。