可以指定一个默认为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;
}
但据我所知,这似乎不可能,对吗?有人知道这种可选属性的解决方法吗?