【发布时间】:2014-09-01 02:30:45
【问题描述】:
是否可以指定一个默认为空的注解?
我想要实现的是可选的注释属性。
例如
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;
}
但据我所知这是不可能的,对吧?有人知道这种可选属性的解决方法吗?
【问题讨论】:
标签: java annotations