我已经在自定义的lombok处理程序上注册了IllegalArgumentException
密钥。
@ProviderFor(EclipseAnnotationHandler.class)
public class HandleEntityData extends EclipseAnnotationHandler<EntityData> {
@Override
public void handle(AnnotationValues<EntityData> annotation,
Annotation ast,
EclipseNode annotationNode) {
handleFlagUsage(
annotationNode,
new ConfigurationKey<FlagUsageType>("lombok.entity.flagUsage",
"Emit a warning or error if @EntityData is used.") {},
"@EntityData"
);
}
我已经检查过该密钥是唯一的。 所以想知道是否有人有想法为什么?
答案 0 :(得分:1)
找到我自己的问题的答案。基本上将CONFIGURATION键移动为一个单独的静态常量,以便每次调用handle()
时都不会构造它。 (密钥对象的标识似乎回退到Object equals / hashcode。)
@ProviderFor(EclipseAnnotationHandler.class)
public class HandleEntityData extends EclipseAnnotationHandler<EntityData> {
public final static ConfigurationKey CONFIGURATION_KEY = new ConfigurationKey<FlagUsageType>("lombok.entity.flagUsage",
"Emit a warning or error if @EntityData is used.") {};
@Override
public void handle(AnnotationValues<EntityData> annotation,
Annotation ast,
EclipseNode annotationNode) {
handleFlagUsage(
annotationNode,
CONFIGURATION_KEYS,
"@EntityData"
);
}