7

有没有办法获得像ConstructorProperties这样的注释,它@Target(CONSTRUCTOR)必须注释生成的 java 16 记录的构造函数?例如:

@ConstructorProperties({"id", "filename"})
public record Person(long id, String filename) {}

此 ^ 导致以下错误:

java: annotation type not applicable to this kind of declaration
4

1 回答 1

7

这有效:

public record Person(long id, String filename) {
    @ConstructorProperties({"id", "filename"})
    public Person {}
}

我的理解是,没有参数列表的内部构造函数是一种向使用组件列表创建的默认构造函数添加逻辑的方法。显然,向其中添加构造函数注释具有我所追求的最终结果:)

于 2021-04-19T20:02:03.967 回答