gpt4 book ai didi

java - 如果一个java方法接受(Object, Object...),有没有办法向其中提供单个参数?

转载 作者:行者123 更新时间:2023-11-30 01:43:48 25 4
gpt4 key购买 nike

我有一个第三方库(Springfox,但这里哪个并不重要),其方法带有签名tags(Tag first, Tag...remaining)。因为我需要向此方法提供大约十几个标签,所以我想将其拆分为一个单独的方法,以提高可读性和可维护性:

public Tag[] generateTags(){
return new Tag[]{
new Tag("Tag1", "Tag 1 Description"),
// other tags
};
}

问题是我不能简单地将 Tag[] 数组输入到第 3 方库方法中,因为它与标签(Tag、Tag...)的方法签名不匹配。我收到错误

The method tags(Tag, Tag...) in the type Docket is not applicable for the arguments (Tag[])

在编译时。这当然是完全符合预期的,尽管我觉得有点奇怪,Java 编译器无法识别 varArgs 参数与其前面的参数具有相同的类型,并允许数组填充它们。

除了在tags()调用中定义第一个标签然后在外部方法中定义其他标签的简单解决方案之外,还有其他解决方案吗?

最佳答案

您可以编写一个包装方法来解决您的问题。只需从数组中分割第一个标签并将其余的输入到第二个参数中即可:

public void tagsWrapper(Tag[] tags){
Tag first = tags[0];
Tag[] other = Arrays.copyOfRange(tags, 1, tags.length);
tags(first, other);
}

关于java - 如果一个java方法接受(Object, Object...),有没有办法向其中提供单个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58949230/

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