是否可以指定默认为 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;
}
但据我所知这是不可能的,对吧?有人知道这种可选属性的解决方法吗?
不,你不能使用null
用于注释属性值。但是,您可以使用数组类型并提供一个空数组。
public @interface Foo {
Config[] value();
}
...
@Foo(value = {})
or
public @interface Foo {
Config[] value() default {};
}
...
@Foo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)