【问题标题】:Generic type <P> converted to paragraph tag in Javadoc泛型类型 <P> 在 Javadoc 中转换为段落标记
【发布时间】:2015-11-15 05:32:26
【问题描述】:

我有一个泛型类型为 P 的 Java 类。我想在 Javadoc 中记录它。通常我只是这样做:

/**
 * ...
 * @param <P> the type of publisher
 */

这在实际的 Javadoc 中显示得很好。但是,CheckStyle 警告我需要记录类型 P,因为它将

呈现为 HTML 段落。此外,Eclipse 格式化程序也将其解释为一个段落,因此它会弄乱格式。

有没有更好的方法来记录类型 P 的类型参数?我知道我可以禁用 Eclipse 格式化程序以不再自动格式化 javadoc,但我宁愿不这样做(而且它无论如何也无法解决 checkstyle 问题)。

我也知道我可以将 P 重命名为其他名称,但考虑到我在这里使用的泛型类型的数量,这会使事情的可读性大大降低。

【问题讨论】:

  • 长期以来最好的Java泛型问题。
  • 类型参数使用另一个字母怎么样?使用P 作为发布者很不错,但T 不是也可以吗?
  • @SpaceTrucker 请阅读我的问题的最后一段 :)
  • 我认为这似乎是重构 eclipse 和 checkstyle 插件的最佳方式:)
  • 你的 Checkstyle 版本是什么?他们最近重新设计了他们的 Javadoc 解析器。

标签: java eclipse generics javadoc checkstyle


【解决方案1】:

只需跳过“”字符。它们不是类型名称的一部分;它们是语法的一部分。

@param P the type of publisher

(不确定它如何与 CheckStyle 一起使用,但应该满足 Eclipse。)

【讨论】:

  • 不幸的是,Checkstyle 不是。对我来说,这是一个要求
【解决方案2】:

这是 CheckStyle 中的一个错误

official Javadoc documentation 表示符号是正确的:

类的类型参数示例:

 /**
  * @param <E> Type of element stored in a list
  */

如果您被这个版本的 CheckStyle 卡住,那么满足这两个约束的唯一方法是将您的 P 类型参数重命名为其他名称。

【讨论】:

  • 谢谢!看起来我最终将不得不使用一种解决方法,但至少现在我确信(目前)没有更好的方法。
  • 原来我一直在错误地指责 Checkstyle。你不能知道,因为我没有正确地问这个问题。有关详细信息,请参阅我自己的答案。还是谢谢!
【解决方案3】:

为后代:事实证明 Checkstyle 处理得很好。问题是 Eclipse 格式化程序添加的空格使 Checkstyle(合理地)认为 Javadoc 不正确。我还在 Eclipse 中找到了此错误的现有错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=121728

【讨论】:

    【解决方案4】:

    我们发现按 Ctrl+S 保存,然后按 Ctrl-Z 撤消格式化将正确保存带有 @param &lt;P&gt; 标记的 Javadoc。

    【讨论】:

      猜你喜欢
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多