gpt4 book ai didi

kotlin - 如何在 Kotlin 中表达数组注释参数?

转载 作者:行者123 更新时间:2023-12-05 01:54:48 31 4
gpt4 key购买 nike

当注解有一个基本类型的数组参数如 String 或 Int 时,如何使用它很简单:

public @interface MyAnnotation{
String[] props();
}

@MyAnnotation(props = ["A", "B", "C"])
class Foo {}

不幸的是,这不适用于本身是注释的值。

一个例子是org.springframework.context.annotation.PropertySources:

public @interface PropertySources {
PropertySource[] value();
}

public @interface PropertySource {
String[] value();
}

在Java语法中的用法是

@PropertySources({
@PropertySource({"A", "B", "C"}),
@PropertySource({"D", "E", "F"}),
})
class Foo{}

但在 Kotlin 中,类似方法的代码无法编译

@PropertySources([
@PropertySource(["A", "B", "C"]),
@PropertySource(["D", "E", "F"]),
])
class Foo{}

这种注解数组嵌套构造在Kotlin中如何表达?

最佳答案

添加 value = 并从子注释声明中删除 @:

@PropertySources(value = [
PropertySource("a", "b"),
PropertySource("d", "e"),
])
class Foo

另请注意,@PropertySource@Repeatable,因此您可以:

@PropertySource("a", "b")
@PropertySource("d", "e")
class Foo

关于kotlin - 如何在 Kotlin 中表达数组注释参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70531873/

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