套件概覽
Reflectable 透過程式碼產生在 Dart 中提供反射功能,支援對類型、欄位、方法和建構函數的執行時期檢查與操作。它不依賴內建反射(在 Flutter 中功能有限),而是使用「功能」來定義特定類別支援哪些反射操作。此方法確保在 Android、iOS、Web、macOS、Windows 與 Linux 等平台上的效能與相容性。非常適合需要動態行為但又不犧牲樹搖或效能的框架與函式庫。
適用情境
- 動態序列化/反序列化
- 執行時類型檢查
- 通用框架開發
- API 的程式碼產生
- 外掛程式和函式庫的擴充性
主要特色
- 程式碼產生的反射
- 基於能力的操作控制
- 跨平台支援
- 最小的執行時開銷
- 與 build_runner 的整合
- 支援欄位、方法和建構函數
適合對象
- 框架開發者
- 程式庫作者
- 需要動態類型處理的工具
- 使用程式碼產生的應用程式
- 對效能敏感的應用程式
使用建議
- 需要 build_runner 和程式碼產生
- 限於顯式宣告的功能
- 不適用於執行時僅反射
- 需要仔細設定 reflectable 標註
- 可能會稍微增加建構時間