26

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

我试过了:

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

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

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

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

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

4

2 回答 2

11

IntelliJ 错误/缺少功能

javadoc使用该版本及以上版本的内置 JDK 工具14-ea,我可以轻松地为record.

在此处输入图像描述

用于相同的命令是\

/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
于 2020-04-27T02:59:09.163 回答
0

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

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 几乎没有价值(除了可能是您的工作环境强加的要求)。

于 2021-03-14T22:10:47.833 回答