我有一个注释用于这样定义的方法或字段:
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.METHOD, ElementType.FIELD})
public @interface NotColumn {
}
我想阻止用户在记录上使用它,因为在该上下文中使用此注释是没有意义的。似乎这样做不应该编译,因为我没有指定ElementType.PARAMETER
为有效的@Target
.
以下编译得很好:
public record MyRecord(String customerId,
String companyName,
@NotColumn String description
}
但是这种带有紧凑构造函数的表单无法使用“ java: annotation type not applicable to this kind of declaration ”进行编译——这实际上是我所期望的。
public record MyRecord(String customerId,
String companyName,
@NotColumn String description
public MyRecord {
}
}