統一的代碼註釋規範是團隊協作、代碼維護、自動化文檔生成的基礎。本文梳理 Java 核心註釋類型的標準模板與實戰應用,涵蓋類、屬性、方法、構造器及方法內部註釋,助力構建可讀、可維護的高質量代碼庫。
位置:類定義之前
核心元素:
/**
* 類功能簡述:用戶服務層,處理用戶註冊、登錄、信息維護等核心業務
*
* @author ZhangSan
* @version 1.0.0
* @since 2024-01-15
* @see UserRepository
* @see UserDTO
*/
public class UserServiceImpl implements UserService { ... }
位置:字段聲明之前
核心元素:
/**
* 用戶狀態:0-禁用,1-啟用,2-鎖定
* 對應表字段:sys_user.status
*/
private Integer status = 1;
/**
* 最後登錄時間,格式:yyyy-MM-dd HH:mm:ss
* 為空表示從未登錄
*/
private Date lastLoginTime;
位置:方法簽名之前
核心元素(Javadoc 標準標籤):
| 標籤 | 說明 | 必填 |
|---|---|---|
| @param | 參數名 + 業務含義 + 約束條件 | 是 |
| @return | 返回值類型 + 業務含義 + 異常情況說明 | 是 |
| @throws | 拋出的業務異常/受檢異常及觸發條件 | 視情況 |
| @see | 關聯類/方法/外部文檔鏈接 | 否 |
/**
* 根據用戶ID查詢用戶詳情
*
* @param userId 用戶唯一標識,必填,長度 32 位 UUID
* @return UserDTO 用戶詳情對象,用戶不存在時返回 null
* @throws BusinessException 用戶ID格式非法時拋出,錯誤碼:PARAM_INVALID
* @see UserRepository#findById(String)
*/
public UserDTO getUserById(String userId) { ... }
位置:構造器簽名之前
核心元素:
/**
* 全參構造器,用於從持久層構建領域對象
*
* @param id 主鍵ID
* @param username 用戶名,唯一索引
* @param email 郵箱,已驗證
* @param createTime 創建時間,不可為空
*/
public User(String id, String username, String email, Date createTime) {
this.id = id;
this.username = username;
this.email = email;
this.createTime = createTime;
}
原則:解釋「為什麼這樣做」,而非「做了什麼」(代碼本身應自説明)
| 類型 | 適用場景 | 示例 |
|---|---|---|
| 單行註釋 | 關鍵業務邏輯、非顯而易見的算法、臨時調試標記 | // 背景顏色常量,對應設計稿 #FF5722Color bgColor = Color.RED; |
| 多行註釋 | 複雜業務規則、演算法步驟、外部接口協議說明 | /* |
| TODO/FIXME | 已知缺陷、待優化點、技術債標記 | // TODO: 後續引入緩存優化查詢性能// FIXME: 並發場景下可能出現重複扣款 |
mvn javadoc:javadoc 生成 HTML 文檔,發布至內部文檔站// 設置名字 + setName(name)<b>、<font> 破壞文檔渲染優秀的註釋是給「六個月後的自己」和「接手的同事」寫的文檔。遵循「公共 API 全覆蓋、業務邏輯重解釋、格式統一工具化」三原則,將註釋從負擔轉化為資產。