问题描述
有没有办法获得像 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
解决方法
这有效:
public record Person(long id,String filename) {
@ConstructorProperties({"id","filename"})
public Person {}
}
我的理解是,没有参数列表的内部构造函数是向使用组件列表创建的默认构造函数添加逻辑的一种方式。显然,向其添加构造函数注释具有我所追求的最终结果:)