註解和註解處理器 Part 2

註解處理器示例

來自《Java編程思想(第4版)》

  1. 用例跟蹤
  2. 數據庫表生成
  3. Java 代碼生成

用例跟蹤使用註解來描述用例的完成情況。
1. 定義描述用例(完成情況)的註解 UseCase
2. 定義用例類PasswordUtil並註解
3. 定義註解處理器UseCaseTracker
執行方式:Main方法,通過反射獲取註解的類/類成員的信息。

數據庫表生成使用註解描述數據庫表。
1. 定義描述數據庫表的註解
1. 描述數據庫表 DBTable
2. 描述數據庫約束 Constraints
3. 描述數據庫字段類型 SQLString
2. 定義實體類Member並註解
3. 定義註解處理器TableCreator
執行方式:Main方法,通過反射獲取註解的類/類成員的信息。

Java 代碼生成示例將類提取爲接口(提取 public 方法)。
1. 定義描述接口的註解InterfaceExtractor
2. 定義待提取類Multiplier並註解
3. 定義註解處理器InterfaceExtractorProcessor
4. 定義註解處理器工廠類InterfaceExtractorProcessorFactory
執行方式:apt 掃描註解並查找對應的註解處理器,註解處理器要通過註解處理器工廠註冊給 apt,apt 提供執行環境給處理器訪問環境資源。內部原理不明(因爲沒有執行編譯被註解的類,所以不是通過反射進行的處理)。

API 支持

  1. apt + com.sun.mirror API:JDK 5 引入註解,同時配備該API進行註解處理; JDK 7 中不再支持。
  2. javac + javax.annotation.processing API:JDK 6 對註解處理進行了標準化,apt 工具被集成到 javac,原先的 API(tools.jar,不屬於 Java 標準API)也被標準化。

IDE 對註解處理的支持

eclipse 支持註解處理,但是對註解處理器的調試僅能通過將項目作爲插件的形式進行。Android Studio 默認不支持,需要引入外部依賴進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章