Java 记录和字段注释

标签 java java-14 java-record java-16

当我们在 Java 中使用类时,为每个类字段/方法添加 JavaDoc/注释非常简单:

class Product {
    //Product unique identifier
    private int id;
}
如果我们将这些类迁移到 Java 记录,则不清楚在这种情况下编写注释/JavaDocs 的最佳实践是什么:
record Product(int id, String name, double price) {
}
因为现在所有字段都在一行中声明。

最佳答案

好吧,关于文档,您有两种选择,要么在记录级别使用 Javadoc,要么使用块注释,我在下文中都使用了

/**
 * My record example
 *
 * @param string does stringy things
 * @param integer does integery things
 */
public record Example(
        /*
          Does stringy things
         */
        String string,
        /*
          Does integery things
         */
        int integer
){};
这是来自 JDK 本身的 Javadoc 示例
/**
 * A serializable cartesian point.
 *
 * <em>This example illustrates the documentation of a serializable record.</em>
 *
 * @param x the x coordinate
 * @param y the y coordinate
 */
public record SerializablePoint(int x, int y) implements Serializable { }
这是一个带有注释块的示例(即使它没有任何参数)
public record NoWarningRecord(/* no components */) {
    // No explicit constructor; use canonical one.
}

关于Java 记录和字段注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67375038/

相关文章:

java - 为什么我们需要像 Web 应用程序中的 dozer 这样的 bean 到 bean 映射器

java - 在 Java 中使用 JSON 填充 DropDown

java - Java-14 之后的 getter/setter 命名约定

java - 当功能需要 ASM8_EXPERIMENTAL 时跳过 Spot Bugs 堆栈跟踪

java - 在 Android Studio (Java, Android) 中使用 JDK17 & Record

java - 使用新的 Record 类时无法反序列化

java - 读取 jar 内的文件?

java 将utf-8 2字节字符转换为1字节字符

ssl - javafx 16 Web 引擎异常 "SSL Handshake failed"

java - Lombok getter/setter vs Java 14 记录