注释默认“空”值
2022-09-02 03:18:51
是否可以指定默认值为 null 的批注?
我想实现的是类似于可选注释属性的东西。
例如
public @interface Foo {
Config value();
}
public @interface Config {
boolean ignoreUnknown() default false;
int steps() default 2;
}
我想使用@Foo(不指定值,所以它应该是某种可选的),我也希望能够写这样的东西:
@Foo (
@Config(
ignoreUnknown = true,
steps = 10
)
)
是否可以使用注释执行此类操作?
我不想做这样的事情
public @interface Foo {
boolean ignoreUnknown() default false;
int steps() default 2;
}
因为我希望能够区分属性是否已设置(而不是是否具有默认值)。
描述起来有点复杂,但我正在研究一个生成Java代码的小注释处理器。但是,在运行时,我想设置一个默认配置,该配置应用于所有@Foo,除了那些使用@Config设置自己的配置的人。
所以我想要的是这样的东西:
public @interface Foo {
Config value() default null;
}
但据我所知,这是不可能的,对吧?有没有人知道这种可选属性的解决方法?