如何在文件Java中记录参数?

How to document Java Record parameters?

应该如何记录 Java Record 参数?我指的是最终成为构造函数参数的参数,class 字段。

我试过了:

/**
 * @param name the name of the animal
 * @param age the age of the animal
 */
public record Animal(String name, int age)
{
}

但是 IntelliJ IDEA 将 @params 标记为错误。我无法找到这应该如何工作的在线示例。我发现最接近的讨论是 https://bugs.openjdk.java.net/browse/JDK-8225055.

我在 JDK 中发现了一些 unit tests 似乎暗示这应该有效。也许这是一个 IDE 错误?

我正在使用 OpenJDK14+36-1461,IDEA 2020.1.

我针对 IDEA 提出了 bug report 以防万一。

IntelliJ 错误/缺失功能

使用 14-ea 及更高版本的 javadoc 的内置 JDK 工具,我可以轻松地为 record.[=16= 生成 Javadoc ]

同样使用的命令是\

/jdk-14.jdk/.../javadoc --release=14 --enable-preview .../src/main/java/.../CityRecord.java

所以这肯定是 IntelliJ 中缺少的东西。 (因为 'Add Javadoc' 选项也不包含组件。)

我必须从 IntelliJ 开发的角​​度来补充,当然作为 预览功能 优先考虑致力于它的工作到这样的程度也是必须采取的呼吁仔细。


更新:我可以验证这已通过 IntelliJ 的最新更新得到修复:

IntelliJ IDEA 2020.2.2 Preview (Community Edition)
Build #IC-202.7319.5, built on September 1, 2020
Runtime version: 11.0.8+10-b944.31 x86_64

您还可以覆盖生成的记录方法并提供有关它们的文档:

public record Animal(String name, int age) {

  /**
   * The name of the animal
   *
   * @return the name
   */
  public String name() {
    return name;
  }

  /**
   * Gets the age of the animal
   *
   * @return the age
   */
  public int age() {
    return age;
  }
}

重要的是要记住这是一个例子。如果您的 getter 文档只是 @return the method name,添加 javadoc 几乎没有任何价值(除了您的工作环境可能提出的要求)。