抽象方法的Javadoc必须包含@param、@return、@throws(如有)三个标签,顺序为@param→@return→@throws;需说明意图、参数用途、返回值语义及受检异常,禁止出现实现细节或默认行为描述。

抽象类中的抽象方法用 Javadoc 注释时,需遵循标准 Javadoc 规范,重点说明方法意图、参数、返回值和异常,不写实现细节(因无方法体)。
必须包含的核心标签
抽象方法的 Javadoc 应至少包含以下三个标签,且顺序建议为 @param → @return → @throws(如有):
- @param:逐个说明每个参数的用途和约束(如非空、取值范围),名称须与方法签名一致
-
@return:明确描述返回值的含义、可能取值及特殊语义(如
null表示未找到) -
@throws:仅标注 受检异常(checked exception),说明触发条件;运行时异常(如
IllegalArgumentException)通常不强制写,但若属设计契约的一部分,建议注明
避免常见错误写法
抽象方法没有方法体,因此注释中不能出现“此方法默认实现为…”“子类应调用 super.xxx()”等暗示实现逻辑的内容。例如:
在调试 Java 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
- ❌ 错误:
/** 返回计算结果,内部使用缓存优化 */(“内部”“缓存”属于实现细节) - ✅ 正确:
/** 计算并返回处理后的结果;当输入无效时抛出 IllegalArgumentException */
配合抽象类整体设计补充说明
可在抽象方法的 Javadoc 开头,用简短第一句点明其在模板方法模式或策略扩展中的角色,增强可读性:
立即学习“Java免费学习笔记(深入)”;
- 例如:
/** 钩子方法,供子类自定义资源清理行为。默认不执行任何操作。*/ - 再如:
/** 模板方法中定义的核心业务逻辑,子类必须提供具体算法实现。*/
完整示例
以下是一个符合规范的抽象方法 Javadoc 示例:
/** * 根据用户 ID 查询用户详情。 * 子类需确保该方法线程安全且能正确处理不存在的用户 ID。 * * @param userId 用户唯一标识,不可为 null * @return 对应的用户对象;若用户不存在,返回 null * @throws IOException 当底层数据源访问失败时抛出 */ protected abstract User findUserById(String userId);

















