gpt4 book ai didi

java - 注解默认值 "null"

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:01 25 4
gpt4 key购买 nike

是否可以指定一个默认值为 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 = {})

public @interface Foo {
Config[] value() default {};
}
...
@Foo

关于java - 注解默认值 "null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com