IntelliJ IDEA @Contract注釋


IntelliJ IDEA中 @Contract 注釋通過定義方法參數和返回值之間的依賴關系,為您的代碼帶來更多的安全性。該信息為源代碼提供了更智能的控制流分析,並有助於避免可能出現的錯誤。

@Contract 注釋是一個強大而靈活的工具,可以讓你的 API 的安全。此外,它不僅可以用於注釋自己的代碼,還可以用於其他現有的庫。

一旦為項目庫配置了注釋,IntelliJ IDEA 就會將注釋的信息存儲在簡單的 XML 文件中,以便通過版本控制與團隊共享。

若要啟用項目中的注釋,請通過項目結構對話框將 <IntelliJ IDEA Home>/lib/annotations.jar 添加到類路徑中。

@Contract 注釋的使用可以通過以下示例來說明:

  • @Contract("_, null -> null") :如果方法的第二個參數是 null,方法返回 null。
  • @Contract("_, null -> null; _, !null -> !null"):如果方法的第二個參數是 null,則方法返回 null,否則為 null。
  • @Contract("true -> fail") :一個典型的 assertFalse () 方法,如果將 true 傳遞給它,則拋出一個異常。

@Contract 注釋的語法

該 @Contract 注釋值的語法如下:

  • contract ::= (clause ‘;’)* clause
  • clause ::= args ‘->’ effect
  • args ::= ((arg ‘,’)* arg )?
  • arg ::= value-constraint
  • value-constraint ::= ‘_’ | ‘null’ | ‘!null’ | ‘false’ | ‘true’
  • effect ::= value-constraint | ‘fail’

這里的約束是:

  • _ :任何價值
  • null:空值
  • !null: 一個靜態證明為不是空值
  • true:布爾值:真
  • false:布爾值:假
  • fail :如果參數滿足參數約束,該方法將拋出異常

@Contract 注釋的屬性

該 @Contract 注釋有兩個屬性: value 和 pure。

value 屬性包含描述調用參數和返回值之間的因果關系的 contract 子句。

pure 屬性適用於不更改其對象狀態的方法,但只返回一個新值。該屬性可以用作“忽略方法調用的結果”檢查的提示,以指示在調用時應該使用方法的返回值。它是假(false)(默認情況下),也可以為真(true)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM