Checkstyle报JavadocMethod缺少@param标签但实际已存在如何解决
问题原因
- 核心触发原因是Checkstyle的
JavadocMethod校验规则默认有两个强制要求:一是方法Javadoc必须包含功能主描述,二是每个@param、@return标签后必须附带对应的说明文本。你当前的Javadoc仅填写了参数名,既没有补充参数/返回值的描述,也没有方法的功能说明,因此触发校验报错。 - 次要排查点:可能存在
@param标注的参数名与方法实际入参名拼写/大小写不一致、@param与参数名之间存在多余空格/不可见字符、Javadoc注释与方法签名之间存在多余空行的问题。
解决方案
- 方案1(推荐,符合通用Java编码规范):补充完整Javadoc的所有必填内容,参考示例如下:
/** * 将多源支付相关入参组装映射为PaymentResponse对象 * @param retrievePersonByPersonIdPayerResponse 根据人员ID查询 payer 信息的响应实体 * @param fidelioPostResponse Fidelio业务系统的提交操作响应实体 * @param personId 业务人员唯一标识ID * @param blist 支付限制标识集合 * @param paymentType 支付类型编码 * @param routedPId 路由转发目标人员ID * @return 组装完成的标准化支付响应实体 */ public static PaymentResponse mapPaymentRequest( RetrievePersonByPersonIdResponse retrievePersonByPersonIdPayerResponse, FidelioPostResponse fidelioPostResponse, Integer personId, HashSet<Integer> blist, String paymentType, Integer routedPId) {
- 方案2(仅适用于团队明确允许简化Javadoc的场景):修改项目的Checkstyle配置文件,关闭参数、返回值描述的强制校验要求,配置参考如下:
<module name="JavadocMethod"> <!-- 允许@param后无描述 --> <property name="allowMissingParamDescription" value="true"/> <!-- 允许@return后无描述 --> <property name="allowMissingReturnDescription" value="true"/> <!-- 如果不需要强制要求方法必须写Javadoc,可额外开启下面配置 --> <!-- <property name="allowMissingJavadoc" value="true"/> --> </module>
- 方案3(针对格式类异常):逐行核对
@param后的参数名与方法入参名的拼写、大小写完全一致,删除@param与参数名之间的多余空格、不可见字符,同时确认Javadoc注释块与方法签名之间没有多余空行,修改完成后重新触发校验即可。
内容的提问来源于stack exchange,提问作者Jishnu Prathap
相关产品推荐
相关产品推荐

