同一类型Java属性的Doxygen注释问题:私有属性被误判为包属性
解决Doxygen识别私有变量为包属性的问题
这个问题我之前帮同事踩过类似的坑——本质是Doxygen对多行逗号分隔变量的注释解析逻辑有点“认死理”,换行后很容易把第二个变量和前面的private修饰符“断联”,误判成包访问权限。给你几个靠谱的解决办法:
1. 最稳妥:拆分单独声明(推荐)
直接把每个变量拆成单独的行,注释紧跟在变量后面,这种写法不仅能让Doxygen100%识别私有权限,代码可读性也更高,后续维护不容易出错:
private: Label percentLbl; //!< @brief percent desc. Label versionLbl; //!< @brief version desc.
2. 坚持逗号分隔:强制指定访问权限
要是你不想改变变量声明的紧凑格式,可以在第二个变量的注释里加上@private命令,明确告诉Doxygen这个变量是私有属性:
private: Label percentLbl, //!< @brief percent desc. versionLbl; //!< @brief version desc. @private
这个命令会覆盖Doxygen的自动解析结果,强制把versionLbl标记为私有变量。
3. 调整格式:让变量和注释保持关联
另一种思路是调整换行位置,把逗号移到下一行开头,让两个变量都明确处于private的作用域范围内,同时保证注释和变量的对应关系:
private: Label percentLbl //!< @brief percent desc. , versionLbl; //!< @brief version desc.
这种写法既保留了逗号分隔的声明方式,又避免了Doxygen的解析歧义。
内容的提问来源于stack exchange,提问作者AwesomeGuy
相关产品推荐
相关产品推荐

