如何记录 Java 记录参数?

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

我试过了:

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

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

我在JDK中发现了一些单元测试,这些测试似乎暗示这应该有效。也许这是一个IDE错误?

我正在使用OpenJDK 14 + 36-1461,IDEA 2020.1。

为了以防万一,我提交了针对IDEA的错误报告


答案 1

IntelliJ Bug / Missing Feature

使用内置的JDK工具以及版本及以上版本,我可以轻松为.javadoc14-earecord

enter image description here

用于相同的命令是 \

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

因此,这肯定是IntelliJ中缺少的东西。(由于“添加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

答案 2

您还可以重写生成的记录方法,并提供有关这些方法的文档:

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;
  }
}

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


推荐