注释默认“空”值
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;
 }
但据我所知,这是不可能的,对吧?有没有人知道这种可选属性的解决方法?